房地产公司网站制作,跨境经验分享,自己做的网站可以开直播,为什么我的网站做不起来《利用Python进行数据分析》 —— #xff08;1#xff09;
Python的学习需要自主探索各种类型#xff0c;函数和方法的文档。
2.1 Python解释器
在IPython#xff08;Jupyter Qtconsole)上#xff0c;可以通过%run命令执行文件中的代码
In [16]: %run hellow.py 1,2,3 10…《利用Python进行数据分析》 —— 1
Python的学习需要自主探索各种类型函数和方法的文档。
2.1 Python解释器
在IPythonJupyter Qtconsole)上可以通过%run命令执行文件中的代码
In [16]: %run hellow.py 1,2,3 10
1,2,3
10
2.2 IPython 基础
2.2.3 Tab补全
在搜索交互命名空间和补全对象或模块属性时有用
当输入任意路径时按下Tab可以补全你的计算机文件系统中匹配你输入内容的值。与%run命令搭配可以大大提升效率
tab补全的另一个应用场景是在函数的关键词参数包含
2.2.4 内省
在变量前后使用问号可以显示对象的信息
In [17]: b [1, 2, 3]
In [18]: b?
Type: list
String form: [1, 2, 3]
Length: 3
Docstring:
Built-in mutable sequence.
If no argument is given, the constructor creates a new empty list.
The argument must be an iterable if specified.
如果对象是一个函数或实例方法且文档字符串已经写好则文档字符串会显示出来。
In [19]: def f(x):this is a functionreturn x 1
In [20]: f?
Signature: f(x)
Docstring: this is a function
File: d:\python_data\
Type: function
??可以显示源码
In [23]: f??
Signature: f(x)
Source:
def f(x):this is a functionreturn x 1
File: d:\python_data\
Type: function
?还有一个用途就是像Unix或Windows命令行一样搜索IPython的命名空间。字符与通配符结合可以匹配所有的名字。
In [22]: np.fi*?
np.fill_diagonal
np.find_common_type
np.finfo
np.fix
2.2.5 %run命令
文件中所有定义的变量import、函数和全 局变量除非抛出异常在运行后都可以在IPython shell中随后访问
假如Python脚本需要命令行提供参数通过sys.argv获取则需要在命令的文件路径后面加上参数进行传递。
import sys
fi sys.argv[1]
se sys.argv[2]
print(fi)
print(se)%run file.py [a1, a2, .., an] [b1, b2, .., bn]如果要在 Jupyter 中你想要将脚本导入一个代码单元可以使用%load魔术函数。
通过Ctrl C结束运行。
2.27 终端快捷键
Ctrl-P 或上箭头键 后向搜索命令历史中以当前输入的文本开头的命令
Ctrl-N 或下箭头键 前向搜索命令历史中以当前输入的文本开头的命令
Ctrl-R 按行读取的反向历史搜索部分匹配
Ctrl-Shift-v 从剪贴板粘贴文本
Ctrl-C 中止当前正在执行的代码
Ctrl-A 将光标移动到行首
Ctrl-E 将光标移动到行尾
Ctrl-K 删除从光标开始至行尾的文本
Ctrl-U 清除当前行的所有文本译注12
Ctrl-F 将光标向前移动一个字符
Ctrl-b 将光标向后移动一个字符
Ctrl-L 清屏
2.2.8 魔术命令
%magic展示
2.2.9 matplotlib集成
在IPython 中%matplotlib
在Jupyter notebook 中 %matplotlib inline
2.3 Python语言基础
2.3.1.8 鸭子类型
有时候你不关心某个对象是什么类型你只关心它是否拥有某个特殊的方法或行为。
例如你想验证一个对象是否实现了迭代器协议那么它必须可以迭代。
def isiterable(obj):
try:
iter(obj)
return True
except TypeError: # 不可遍历
return False
通常在编写接受多种类型输入的函数时可以使用这些功能。
eg:要接受任意序列类型列表元组n维数组你可以先判断是否为一个列表或者为Numpy数组否则将其转化为列表
if not isinstance(x, list) and isiterable(x):
x list(x)
2.3.1.10二元操作符
In [9]: a [1, 2, 3]
In [10]: b a
In [11]: c list(a)
In [12]: a is b
Out[12]: True
In [13]: a is not c
Out[13]: True
值得注意的是list函数总是创建一个新的Python列表即一份拷贝。
且is和是不同的c is a为Falsec a为True。
还值得注意的是//整除符号。如果需要风格的整除除法去除非整数部分的小数部分则可以用整除操作符
2.3.2.2 字符串
字符串是不可以修改的
在遇到有大量反斜杠字符串时可以通过添加rXXX表明该字符串为原生字符。
字符串格式化字符串拥有一个format方法。
例如In [64]: template {0 : .2f} {1 : s}, are worth US${2 : d}。在这字符串中
{0 : .2f} 表示格式化第一个参数为带有两位小数的浮点数。
{1 : s} 表示格式化第二个参数为字符串。
{2 : d} 表示格式化第三个参数为一个整数。
2.3.2.7 日期与时间
熟练掌握两个方法
第一个strftime将datatime类型转为字符串
In [102]: from datetime import datetime, date, time
In [103]: dt datetime(2011, 10, 29, 20, 30, 21)
...
In [108]: dt.strftime(%m/%d/%Y %H:%M)
Out[108]: 10/29/2011 20:30
strptime 可以将字符串转换成 datetime 对象
In [109]: datetime.strptime(20091031, %Y%m%d)
Out[109]: datetime.datetime(2009, 10, 31, 0, 0)2.3.3.6 三元表达式
语法如下
value true-expr if condition else false-expr