x**2 : x^2
若x是mat矩阵,那就表示x内每个元素求平方a.get(k,d)
get相当于一条if…else…语句。若k在字典a中,则返回a[k];若k不在a中,则返回参数d。
l = {5:2,3:4}l.get(3,0) 返回值是4;l.get(1,0) 返回值是0;
type(x):返回x的类型type(x)._name_:返回该类型的字符串表示
complex(a,b) #建立a+bj的复数complex('2+1j') #将字符串形式的复数转成复数real(x) #取复数x的实部imag(x) #取复数x的虚部abs(x) #求x的模
本函数是返回迭代器的下一个元素的值。
在Python 3中,只能使用next()函数(试图调用.next()方法会触发AttributeError)。
my_generator = (letter for letter in 'abcdefg')next(my_generator)>>>'a'
Python内置math模块,提供大部分常用数学运算函数。
math 模块是标准库中的,所以不用安装,可以直接使用。使用方法是:
>>> import math
ceil(x) 取顶floor(x) 取底fabs(x) 取绝对值factorial (x) 阶乘hypot(x,y) 计算sqrt(x*x+y*y)pow(x,y) x的y次方sqrt(x) 开平方log(x)log10(x)trunc(x) 截断取整数部分isnan (x) 判断是否NaN(not a number)degrees (x) 弧度转角度radians(x) 角度转弧度sin(x)cos(x)tan(x)asin(x)acos(x)atan(x)#例子:a=math.atan(x) #计算x的反正切值seta=math.degrees(a) #将弧度制表示的a转换成角度制表示的seta
from numpy import array/mat/shape/*mm=array([1,2,3]) //ss=mat([1,2,3])
Numpy中,mat必须是2维的,但是array可以是多维的(1D,2D,3D····ND). Matrix是Array的一个小的分支,包含于Array。所以matrix 拥有array的所有特性。
在numpy中matrix的主要优势是:相对简单的乘法运算符号。例如,a和b是两个matrices,那么a*b,就是矩阵积。
若a=mat([1,2,3])
是矩阵,则 a.A 则转换成了数组,反之,a.M则转换成了矩阵
数组array的参数是列表,有
a=array([1,2,3])b=array([[1,2,3],[4,5,6]])
它有以下一些属性:
a.ndim #秩,是数组轴的个数a.shape #数组的维度a.size #元素的总个数a.dtype #一个用来描述数组中元素类型的对象a.dtype.name #返回字符串形式的类型名
取矩阵中的某一行 ss[1,:]
或该行的某两列 ss[1,0:2]
将数组转换成矩阵 randMat=mat(random.rand(4,4))
矩阵求逆 randMat.I
单位阵 eye(4)
零矩阵 zeros((x,y))
建立x行y列的零矩阵
最大值和最小值 a.max(),a.min()
,而a.max(0)
表示按列选取每列的最大值
最大/小元素的下标 a.argmax(),a.argmin()
#作为方法x.sum() #所有元素相加x.sum(axis=0) #按列相加x.sum(axis=1) #按行相加#作为函数sum(a,axis=0)ss.mean() mean(a,axis=0(或1)) #按列或行求均值var(a)var(a,axis=0(或1)) #按列或行求方差std(a)std(a,axis=0(或1)) #按列或行求标准差ss.T或ss.transpose() #转置
shape(3):一个单独的数字,返回值为空shape([1]):一维矩阵[1]返回值为(1L,) shape([[1],[2]]) :二维矩阵[[1],[2]],返回两个值
e=eye(3)e.shape>>(3L,3L)e.shape[0]//读取第一维度的长度>>3L
a=[0,1,2]b=tile(a,2)>>>b=([0,1,2,0,1,2])b=tile(a,(2,1))>>>b=([[0,1,2], [0,1,2]])b=tile(a,(1,2))>>>b=([[0,1,2],[0,1,2]])
range(1,5):代表从1到5,不包含5:[1,2,3,4]range(1,5,2):代表从1到5,间隔为2,不包含5:[1,3]range(5):代表从0到5,不包含5:[0,1,2,3,4]
x.sort()
:只可以应用于list对象,且是原地排序,排序过后list发生改变。
x.argsort()
:得到矩阵每行的升序排序
排序并生成新的容器
一. 如果是普通的列表,可以直接使用sorted,如
a=[1,4,2,3,7]b=sorted(a)
二. 如果是由元祖构成的元祖列表,就比较复杂,假设有
L=[('b',2),('a',1),('c',3)]
有两种写法或格式
sorted(L,cmp=lambda x,y:cmp(x[1],y[1])
sorted(L,key=lambda x:x[1])
其中还有个reverse可选项,reverse=True 则输出倒序,reverse=False 则输出正序。
三. 如果是字典,那么格式也略复杂
假设有dic={'a':31,'bc':52,'c':3,'33':56}
在python 3中,可以写成
sorted(dic.items(),key=lambda d:d[1],reserve=False)
其中,dic.items
返回字典键值对的元祖集合set
还可以写成
sorted(dic.items(),key=operator.itemgetter(1),reserve=False)
其中,operator.itemgetter()
函数可以获取对象的某些维的数据
a.ravel() #展平成一维数组,a.flatten() 与之类似a.reshape(m,n) #返回一个新数组,但原数组本身不变a.resize(m,n) #返回一个新数组的同时也改变原数组本身
a.copy() #对元素进行复制c=sqrt(a) #计算元素的平方根c=exp(a) c=abs(a)c=add(a,b) #a和b对应元素相加c=subtract(a,b) #a和b对应元素相减c=multiply(a,b) #a和b对应元素相乘c=divide(a,b) #a和b对应元素相除nonzero(a) #返回a中所有不为零的元素的下标位置
对array和matrix而言,(a>3)或(a==3)
返回一个同类型的布尔值
例如:
a=array([1,2,3])b=(a==2)>>>b=array([False,True,False])
linalg中包含了许多线性代数的方法
linalg.det(a) #求a的行列式linalg.inv(a) #求a的逆矩阵
联系客服