Python函数以及一些注意
2018-08-17 本文已影响16人
d834a9a2551c
函数
- 注意.append()和.extend()是不一样的,如
假定存在两个列表,a和b:
>>> a= [1,2,3]�
>>> b=[4,5,6]
>>> a.append(b) �
>>> a
[1, 2, 3, [4, 5, 6]]
如果执行a.append(b) ,则列表得到了第四个元素,而且第四个元素也是一个列表。然而
如果使用a .extend(b):
�>>> a= [1,2,3]
>>> a .extend(b)
>>> a
[1, 2, 3, 4, 5, 6] �则得到一个包含a和b所有元素的列表。
- .argsort():默认从小到大排序,然后返回索引值,如 [1,3,0]从小到大是0,1,3返回对应索引值[2,0,1]
- array(): 可以将矩阵转换为数组
- corrcoef(x,y):得到序列x、y之间的相关系数
- .count(b):计算xx中b的数量
- cov():计算协方差
- eye(m):常见m*m的单位矩阵
- get():Python 字典 dict.get(key, default=None)函数返回指定键的值,如果值不在字典中返回默认值。
- linalg.det(x):求矩阵x的行列式
- linalg.eig(x):返回矩阵x的特征值以及特征向量
- map():会根据提供的函数对指定序列做映射。
- mat():可以将数组转化为矩阵
- mean():求平均值
- min(0)返回该矩阵中每一列的最小值
min(1)返回该矩阵中每一行的最小值
max(0)返回该矩阵中每一列的最大值�
max(1)返回该矩阵中每一行的最大值 - nonzero(a):返回a中非0元素索引值,如果a是二维的,如[[0,0,3],[1,0,0]]那么返回的是(array([0, 1]), array([2, 0])) 第一个数组是0轴的索引值,第二个数组是1轴的索引值
- power(x1,x2):对x1求x2次方,这里x1可以是数,也可以是数组(对应x2的列数要相同)
- random.rand(x,y)与random.randn(x,y):
创建一个x行y列的随机数二维数组,但是前者的数在[0,1)范围内,后者的数符合标准正态分布。 - set() :函数创建一个无序不重复元素集,可进行关系测试,删除重复数据,还可以计算交集、差集、并集等。
- .shape[]:读取矩阵、数组的长度,.shape[0]是y轴长度
- sorted():Python内置的排序函数sorted可以对list或者iterator进行排序
函数原型sorted(iterable, cmp=None, key=None, reverse=False) --> new sorted list
iterable:是可迭代类型;
cmp:比较的函数,这个具有两个参数,参数的值都是从可迭代对象中取出,此函数必须遵守的规则为,大于则返回1,小于则返回-1,等于则返回0;
key:主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序;
reverse:排序规则. reverse = True(降序)或者 reverse = False(升序),有默认值。
返回值:是一个经过排序的可迭代类型,与iterable一样。
- sqrt():平方根计算
- .sum():对于二维数组,axis=0,y轴上相加;axis=1,x轴上相加;对于一维数组,只有axis=0;对于所有类型,sum() 默认是所有数相加
- .tile(a,(m,n)):将a数组在x轴上复制n倍,在y轴上复制m倍,如果为1,则是不复制
- var():求方差,var(w,n) 。w是样本数据集,n取0求样本方差的无偏估计值(除以N-1);取1求得的是方差(除以N)
- zeros():创建元素为0的数组
注意
- 在二维矩阵中,例如
testMat=matrix([[1., 0., 0., 0.],
[0., 1., 0., 0.],
[0., 0., 1., 0.],
[0., 0., 0., 1.]])
testMat[[2,1],:]
# 这样的取值方法表示,取第2、1行的所有列。
matrix([[0., 0., 1., 0.],
[0., 1., 0., 0.]])
# 同理
testMat[[3,1],:]
# 表示取第3、1行的所有列。
matrix([[0., 0., 0., 1.],
[0., 1., 0., 0.]])
- 一些引用的注意事项
a=4
b=a
# 这时候 id(a) 等于 id(b)
a=5
# 这时候 id(a)改变了,id(b)不变
# b还是等于4
# a指向的对象变了,而b还是指向‘4’这个对象
a=[1,2,3]
b=a
# 这时候 id(a) 等于 id(b)
a=[4,2,3]
# 这时候 id(a)改变了,id(b)不变
# b还是等于[1,2,3]
# a指向的对象变了,而b还是指向‘[1,2,3]’这个对象
a=[1,2,3]
b=a
# 这时候 id(a) 等于 id(b)
a[0]=10
# 这时候 id(a)、id(b)不变
# b等于a等于[4,2,3]
# 若是b[0]=10,结果相同
# 因为改变的是a[0]指向的对象,而a指向的对象和b指向的对象不变
-
报错 'dict' object has no attribute 'has_key'
python2:
if dict.has_key(word):
python3:
if word in dict: -
关于Python中[i:j:s]
i代表开始序号,
j为结尾元素的后一个序号,
s是步长,缺省时默认为1。
如a[0,1,2,3,4,5,6,7,8,9]
a[0:10],输出的是从0到9;而a[0:9],输出的是从0到8
当s>0时,i缺省默认为0,j缺省默认为len(a),即序列长度。
当s<0时,i缺省默认为-1,j缺省默认为-(len(a)+1),即想输出从9到0,a[-1:-11:-1]
当s=-1时,输出与默认为1时相反,即倒序
如a[::-1],输出时从9到0
框架
- NumPy:是一个第三方的Python包,用于科学计算。
- Matplotlib:数据可视化,Matplotlib是Python中最常用的可视化工具之一,可以非常方便地创建海量类型地2D图表和一些基本的3D图表。
- Tkinter:GUI框架,图形开发界面的库。