import numpy as np from numpy import newaxis #方法:help(np.info(np.add)) 查看方法 # print(help(np.info(np.add))) # reshape() #维度(x,y) x--维度 y--元素个数 #arange 相当于range(start,stop,step,dtype) a=np.arange(15).reshape(3,5) print(np.reshape(a,(5,3))) #ndim--轴数(默认0,1,2。。。。) print(a.ndim) #shape--数组大小(x,y) print(a.shape) #size--元素总个数 print(a.size) #itemsize--每个元素所占内存空间大小,以字节为单位 print(a.itemsize) #dtype--元素类型,int64,float64,object,complex... print(a.dtype) # print(type(a)) # <class 'numpy.ndarray'> print("====================") b=np.array([1,2,3,4,5,6]) #reshape() #维度(x,y) x--维度 y--元素个数,可以修改维度 print(b.reshape(2,3)) #dtype 可以指导类型 c=np.array([1,2,3,4,5,6],dtype=float) #如果没有dtype指定,array里面必须为统一类型 d=np.array([1,2,3,4,5,6.2]) #dtype=object 可以为任意类型 e=np.array([1,2,3,4,5,6,7.3,'124'],dtype=object) print("====================") #zeros((3,4)) -- 创建充满为0的数组, f=np.zeros((3,4)) #np.ones((3,4))-- 创建充满为1的数组, f1=np.ones((3,4),dtype=int) # np.set_printoptions(threshold=np.nan) -- 强制打印整列 # np.set_printoptions(threshold=np.nan) print(np.arange(10000).reshape(10,1000)) print(np.arange(10,100,2)) print("===============") g = np.arange(20,60,10) g1=np.arange(1,5) #两个数组元素个数一一对应相乘 g2=g1*g print(g1) print(g) #max --最大值 ; min --最小值 ; sum--求和 ;mean-- 平均值 # var--标准差 :公式:1/n[(X0-Xmean)^2+(X1-Xmean)^2+....(X0-Xmean)^2] 例如1/4*【(1.25)^2+(0.5)^2+(0.5)^2+(1.25)^2] #add --求和 ; subtract --相减 ; multiply--相乘 ;divide--相除; print(g2.max()) print(g2.min()) print(g2.sum()) print(g2.mean()) print(g1.var()) print(np.add(g,g1)) print(np.subtract(g,g1)) print(np.multiply(g,g1)) print(np.divide(g,g1)) print("=================================================") #三角函数:np.sin(num*np.pi/180) sin=y/r cos=x/r tan=y/x ary=np.array([0,30,45,60,90]) print(np.sin(ary*np.pi/180)) print(np.cos(ary*np.pi/180)) print(np.tan(ary*np.pi/180)) print("=================================================") #矩阵乘法dot或@:A=[[a,b],[c,d] #B=[[x,y],[u,v]] #c=A@B=[[a*x+b*u,a*y+b*v] # [c*x+d*u,c*y+d*v]] A=np.array([[1,2],[3,4]]) B=np.array([[1,2],[3,4]]) print(np.dot(A,B)) # [[ 7 10] # [15 22]] A=np.array([[3,4],[3,2]]) B=np.array([[3,2,3],[5,2,3]]) print(A@B) # [[29 14 21] # [19 10 15]] print("=================================================") #linspace --等差数列 从0-3 取5个数 b=np.linspace(0,3,4) print(b) d=np.exp(b*1j) print(d) #[ 1. +0.j 0.54030231+0.84147098j -0.41614684+0.90929743j -0.9899925 +0.14112001j] #sqrt -- 算数平方根 print(np.sqrt(b)) #std--矩阵标准差 :求矩阵标准差的算术平方根 axis=1 计算计算每一列的标准差 print(np.std([1,2,3,4])) print(np.sqrt(1.25)) print(np.std([[1,2,3,4],[3,4,5,6]],axis=0)) # print(help(np.info(np.std))) h=np.arange(20).reshape(4,5) for i in h: print(i) #floor--忽略小数点后边的数 i=(10*np.random.random((3,4))) print(i) print(np.floor(i)) #ravel--转化为一维 i1=(i.ravel()) print(i1.shape) print("====================") # a=np.arange(24).reshape(6,4) print(a) b=np.arange(24,48).reshape(6,4) print(b) # vstack-- 纵向合并 hstack--横向合并 print(np.vstack((a,b))) c=np.hstack((a,b)) print(c[:newaxis]) #column_stack-- 相当于hstack--横向合并 print(np.column_stack((a,b))) #concatenate --合并 axis=1 横向 ; axis=0 纵向 print(np.concatenate((a,b),axis=1)) #此函数不会保留MaskedArray输入的屏蔽 a=np.ma.arange(10) print("===========split=======================") #array_split --将数组拆分成多个子数组,;hsplit--横向拆分 ; vsplit--纵向拆分 ;dsplit a=np.arange(12) b=np.arange(16.0).reshape(2, 2, 4) print(np.dsplit(b,2)) print(np.array_split(a,5)) print(np.hsplit(a,6)) b=np.arange(16).reshape(4,4) c=np.vsplit(b,4) for c1 in c : print(c1) print("===========dstack=======================") #dstack --按顺序进行多维组合; stack--沿新轴加入一系列数组; hstack--横向进行组合; vstack--纵向进行多维度组合 a=np.array((1,2,3,4,5,6)) b=np.array((7,8,9,10,11,12)) print(a) print(b) print(np.dstack((a,b))) print(np.stack((a,b))) print(np.hstack((a,b))) print(np.vstack((a,b)))
numpy 基础01
最新推荐文章于 2022-10-17 20:54:32 发布