irpas技术客

python学习之基础内容(二)_liuyingshudian

网络 4764

二. NumPy科学计算库 1.Numpy作用

提供了多维数组、矩阵的常用操作和一些高效的科学计算函数底层运算通过C语言实现,处理速度快、效率高,适用于大规模多维数组可以直接完成数组和矩阵运算,无需循环 2.导入库 Anaconda中已有NumPy库了,如若没有可以使用pip安装,“pip install numpy”导入NumPy库 ——import numpy as np 3. 创建数组——array([列表]/(元组),dtype=数据类型) import numpy as np a=np.array([0,1,2,3]) print(a) print(a[0]) a[1:3]

4.数组的属性 import numpy as np a=np.array([0,1,2,3]) print(a.ndim) #输出数组的维数 print(a.shape) #输出数组的形状,逗号表示是一个元组 print(a.size) #输出数组元素的总个数 print(a.dtype) #输出数组中元素的数据类型 print(a.itemsize) #输出数组中每个元素的字节数

?

?5.三维数组 import numpy as np t=np.array([[[0,1,2,3],[4,5,6,7],[8,9,10,11]],[[12,13,14,15],[16,17,18,19],[20,21,22,23]]]) print(t) print(t.ndim) #输出数组的维数 print(t.shape) #输出数组的形状 print(a.size) #输出数组元素的总个数 print(t[0]) print(t[0].ndim) print(t[0].shape) print(t[0].size) print(t[0][0]) print(t[0][0].ndim) print(t[0][0].shape) print(t[0][0].size) print(t[0][0][0])

6.数组中所有元素的数据类型必须一致 7.特殊数组 import numpy as np a=np.arange(0,2,0.3) #np.arange(起始数字,结束数字,步长,dtype),创建一个由数字序列构成的数组 print("a=",a) b=np.ones((3,2),dtype=np.int16) #np.ones(shape,dtype),创建一个元素全部为1的数组 print("b=",b) c=np.zeros((2,3)) #np.zeros(shape,dtype) 创建一个全为0的数组 print("c=",c) d=np.eye(3) #np.eye(shape,dtype),创建一个单位矩阵 print("d=",d) e=np.linspace(1,10,10) #np.linspace(起始数字,结束数字,元素个数,dtype),创建等差数列 print("e=",e) f=np.logspace(1,5,5,base=2) #np.logspace(起始指数,结束指数,元素个数,基base=,dtype),创建一个等比数列 print("f=",f)

?

8.asarray()函数与array()函数:将列表或元组转化为数组对象,不同之处如下:

当数据源本身已经是一个ndarray对象(N维数组对象)时,array()仍然会复制出一个副本,占用新的内存,而asarray()则不复制副本,它直接引用原数组

9.三维数组元素的切片 #三维数组元素的切片 import numpy as np t=np.array([[[0,1,2,3],[4,5,6,7],[8,9,10,11]],[[12,13,14,15],[16,17,18,19],[20,21,22,23]]]) print("t=",t) a=t[:,:,0] print("a=",a) b=t[0:1,0:2,3] #一维选前一组,二维选前两行,三维取到上述范围第4列元素 print("b=",b)

?

10.使用reshape改变数组 import numpy as np t=np.arange(12) a=t.reshape(3,4) #不改变当前数组,按照shape创建新的数组 print("t=",t) print("a=",a) b=t.resize(3,4) #改变当前数组,按照shape创建数组?结果有点问题 print("t=",t) print("b=",b) c=np.arange(12).reshape(2,6) print("c=",c)

?

11.相加 #一维数组和多维数组相加 import numpy as np a=np.array([0,1,2,3]) b=np.array([[0,1,2,3],[4,5,6,7],[8,9,10,11]]) c=a+b print("c=",c)

12.矩阵运算 #二维数组之矩阵运算 import numpy as np A=np.array([[1,1],[0,1]]) B=np.array([[1,1],[0,1]]) C=A*B #矩阵中对应的元素分别相乘 print("C=",C) D=np.matmul(A,B) #矩阵相乘 print("D=",D) E=np.dot(A,B) #矩阵相乘 print("E=",E) F=np.transpose(A) #转置 print("F=",F) G=np.linalg.inv(A) #求逆 print("G=",G)

13.数组求和 #数组求和运算 import numpy as np t=np.arange(4) s=np.sum(t) #sum()整个数组求和 print("s=",s) a=np.arange(12).reshape(3,4) print("a=",a) b=np.sum(a,axis=0) #按列求和 print("b=",b) c=np.sum(a,axis=1) #按行求和 print("c=",c) #三维数组 q=np.arange(24).reshape(2,3,4) print("q=",q) d=np.sum(q,axis=0) #上下两数组元素对应相加,得到一个新的二维数组 print("d=",d) e=np.sum(q,axis=1) #上下两数组分别按列求和 print("e=",e) f=np.sum(q,axis=2) #上下两数组分别按行求和 print("f=",f)

?

14.数组堆叠运算 #数组堆叠运算 import numpy as np x=np.array([1,2,3]) y=np.array([4,5,6]) a=np.stack((x,y),axis=0) #在轴=0上堆叠,横着放 print("a=",a) b=np.stack((x,y),axis=1) #在轴=0上堆叠,竖着放 print("b=",b) #二维数组堆叠 m=np.array([[1,2,3],[4,5,6],[7,8,9]]) n=np.array([[10,20,30],[40,50,60],[70,80,90]]) c=np.stack((m,n),axis=0) print("c=",c) d=np.stack((m,n),axis=1) print("d=",d)

?

?15.矩阵 #矩阵 import numpy as np a=np.mat('1 2 3;4 5 6') #矩阵a print("a=",a) b=np.mat([[0,1],[2,3]]) c=np.mat([[1,1],[2,0]]) d=b*c #矩阵相乘 print("d=",d) e=b.T #转置 print("e=",e) f=b.I #求逆 print("f=",f)

?

16.随机数 #随机数 import numpy as np a=np.random.rand(2,3) #创建2*3的随机数组,取值是在【0,1)之间均匀分布的浮点数 print("a=",a) b=np.random.uniform(1,5,(3,2)) #创建3*2的随机数组,取值是在1至5之间均匀分布的浮点数 print("b=",b) c=np.random.randint(1,5,(3,2)) #创建3*2的随机数组,取值是在1至5之间均匀分布的整数 print("c=",c) d=np.random.randn(2,3) #创建2*3的随机数组,符合标准正态分布 print("d=",d) e=np.random.normal(0,1,(3,2)) #创建3*2的随机数组,符合正态分布,均值为0,方差为1

?


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #python学习之基础内容二 # #install #numpy导入NumPy库 #import #numpy #as