Numpy
用于科学计算的python模块,提供了Python中没有的数组对象,支持N维数组运算、处理大型矩阵、成熟的广播函数库、矢量运算、线性代数、傅里叶变换以及随机数生成等功能,并可与C++、FORTRAN等语言无缝结合。
菜鸟教程:https://www.runoob.com/numpy/numpy-dtype.html
·导入numpy模块(打开cmd窗口)
pip install numpy
·简单应用
import numpy as np
1.生成数组
1 >>> np.array([1, 2, 3, 4, 5]) # 把列表转换为数组 2 array([1, 2, 3, 4, 5]) 3 >>> np.array((1, 2, 3, 4, 5)) # 把元组转换成数组 4 array([1, 2, 3, 4, 5]) 5 >>> np.array(range(5)) # 把range对象转换成数组 6 array([0, 1, 2, 3, 4]) 7 >>> np.array([[1, 2, 3], [4, 5, 6]]) # 二维数组 8 array([[1, 2, 3], 9 [4, 5, 6]]) 10 >>> np.arange(8) # 类似于内置函数range() 11 array([0, 1, 2, 3, 4, 5, 6, 7]) 12 >>> np.arange(1, 10, 2) #从1到10(包括1,不包括10),步长为2 13 array([1, 3, 5, 7, 9]) 14 >>> np.linspace(0, 10, 11) 15 # 等差数组,包含11个数,从0到10(包括0,也包括10,闭区间),平均分为11个数字array([ 0., 1., 2., 3., 4., 5., 6., 7., 8., 9., 10.]) 16 >>> np.linspace(0, 10, 11, endpoint=False) # 不包含终点 17 array([ 0. , 0.90909091, 1.81818182, 2.72727273, 3.63636364, 18 4.54545455, 5.45454545, 6.36363636, 7.27272727, 8.18181818, 19 9.09090909]) 20 >>> np.logspace(0, 100, 10) # 对数数组,从0到100,取10个数,返回10个数分别作为幂,计算基为10的结果数组 21 array([ 1.00000000e+000, 1.29154967e+011, 1.66810054e+022, 22 2.15443469e+033, 2.78255940e+044, 3.59381366e+055, 23 4.64158883e+066, 5.99484250e+077, 7.74263683e+088, 24 1.00000000e+100]) 25 >>>np.logspace(0, 10, 5) 26 array([1.00000000e+00, 3.16227766e+02, 1.00000000e+05, 3.16227766e+07, 27 1.00000000e+10]) 28 >>> np.logspace(1,6,5, base=2) # 对数数组,相当于2 ** np.linspace(1,6,5) 29 array([ 2. , 4.75682846, 11.3137085 , 26.90868529, 64. ]) 30 >>>np.logspace(1,5,5,base=2) 31 array([ 2., 4., 8., 16., 32.]) 32 >>>np.logspace(1,6,3,base=2) 33 array([ 2. , 11.3137085, 64. ]) 34 >>> np.zeros(3) # 全0一维数组 35 array([ 0., 0., 0.]) 36 >>> np.ones(3) # 全1一维数组 37 array([ 1., 1., 1.]) 38 >>> np.zeros((3,3)) # 全0二维数组,3行3列 39 array([[ 0., 0., 0.], 40 [ 0., 0., 0.], 41 [ 0., 0., 0.]]) 42 >>> np.zeros((3,1)) # 全0二维数组,3行1列 43 array([[ 0.], 44 [ 0.], 45 [ 0.]]) 46 >>> np.zeros((1,3)) # 全0二维数组,1行3列 47 array([[ 0., 0., 0.]]) 48 >>> np.ones((3,3)) # 全1二维数组 49 array([[ 1., 1., 1.], 50 [ 1., 1., 1.], 51 [ 1., 1., 1.]]) 52 >>> np.ones((1,3)) # 全1二维数组 53 array([[ 1., 1., 1.]]) 54 >>> np.identity(3) # 单位矩阵 55 array([[ 1., 0., 0.], 56 [ 0., 1., 0.], 57 [ 0., 0., 1.]]) 58 >>> np.identity(2) 59 array([[ 1., 0.], 60 [ 0., 1.]]) 61 >>> np.empty((3,3)) # 空数组,只申请空间而不初始化,元素值是不确定的 62 array([[ 0., 0., 0.], 63 [ 0., 0., 0.], 64 [ 0., 0., 0.]]) 65 >>> np.random.randint(0, 50, 5) # 随机数组,5个0到50之间的数字 66 array([13, 47, 31, 26, 9]) 67 >>> np.random.randint(0, 50, (3,5)) # 3行5列 68 array([[34, 2, 33, 14, 40], 69 [ 9, 5, 10, 27, 11], 70 [26, 17, 10, 46, 30]]) 71 >>> np.random.rand(10) 72 array([ 0.98139326, 0.35675498, 0.30580776, 0.30379627, 0.19527425, 73 0.59159936, 0.31132305, 0.20219211, 0.20073821, 0.02435331]) 74 >>> np.random.standard_normal(5) # 从标准正态分布中随机采样 75 array([ 2.82669067, 0.9773194 , -0.72595951, -0.11343254, 0.74813065])