1numpynumpy全称叫Numerical Python由C语言开发摆脱python全局解析锁运算性能强、用来存储和处理大型矩阵是科学计算和数据分析的基本工具。2numpy属性numpy默认数据类型int64、float64创建一个3行5列从0到14的数组import numpy as npa np.arange(15).reshape(3, 5)打印数组print(a)数组的维度a.shape数组轴的个数a.ndim数组元素类型a.dtype数组中每个元素的字节大小a.itemsize数组元素的总个数a.size类型查询type(a)3 创建ndarray1 array()数组里的所有元素都是相同数据类型2 zeros() /ones()/empty()zeros()全0数组ones()全1数组empty内容随机并且依赖于内存状态的全0数组数组类型(dtype)都是float643 arange()arange() 类似 python 的 range() 创建一个一维 ndarray 数组np_arange np.arange(10, 20, 5,dtypeint) #[10,20)步长为5print (np_arange) # [10, 15]4 matrix()matrix 是 ndarray 的子类只能生成 2 维的矩阵x1 np.mat(1 2;3 4)x2 np.matrix(1,2;3,4)x3 np.matrix([[1, 2],[3, 4]])5 创建随机数矩阵import numpy as np # 3行4列随机多维浮点型数据二维rand固定区间[0.0, 1.0) arr np.random.rand(3, 4) print(arr) # 3行4列随机多维浮点型数据二维randn标准正态分布均值 0标准差 1大部分数字在-2~2 arr np.random.randn(3, 4) print(arr) # 3行4列随机多维整型数据二维randint()指定区间[-1, 5) arr np.random.randint(-1, 5, size (3, 4)) print(arr) # 3行4列随机多维浮点型数据二维uniform()指定区间[-1, 5均匀分布的样本值 arr np.random.uniform(-1, 5, size (3, 4)) print(arr)6 ndarray的数据类型指定dtype数据类型astype()转换数组的数据类型import numpy as np zeros_float_arr np.zeros((3, 4), dtypenp.float32) print(zeros_float_arr.dtype) #float32 # astype将数组的数据类型转换为int32 zeros_int_arr zeros_float_arr.astype(np.int32) print(zeros_int_arr.dtype) #int327 等比/等差数列logspace创建一个等比数列的一维数组import numpy as np a np.logspace(0, 0, 10) # 开始点为0结束点为0元素个数为10 print(a) # [1. 1. 1. 1. 1. 1. 1. 1. 1. 1.] a np.logspace(0, 9, 10) # 0代表10的0次方9代表10的9次方 print(a) # [1.e00 1.e01 1.e02 1.e03 1.e04 1.e05 1.e06 1.e07 1.e08 1.e09] a np.logspace(0, 9, 10, base2) # 改变基数以2为底数 print(a) # [ 1. 2. 4. 8. 16. 32. 64. 128. 256. 512.]linspace创建一个等差数列的一维数组import numpy as np a np.linspace(1,10,10) # 起始点终止点数列的个数 print(a) # [ 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.] print(a.dtype) # float64 a np.linspace(1,10,10,endpointFalse) # endpoint指定是否包含终止值默认值为True print(a) # [1. 1.9 2.8 3.7 4.6 5.5 6.4 7.3 8.2 9.1]4 NumPy内置函数1 基本函数np.ceil(): 向上最接近的整数参数是 number 或 arraynp.floor(): 向下最接近的整数参数是 number 或 arraynp.rint(): 四舍五入参数是 number 或 arraynp.isnan(): 判断元素是否为 NaN(Not a Number)参数是 number 或 arraynp.multiply(): 元素相乘参数是 number 或 arraynp.divide(): 元素相除参数是 number 或 arraynp.abs()元素的绝对值参数是 number 或 arraynp.where(condition, x, y): 三元运算符x if condition else yimport numpy as np # randn()标准正态分布 arr np.random.randn(2, 3) print(arr) [[ 0.62075155 -0.39586061 0.07556188] [ 1.14602401 0.61087754 1.3770935 ]] print(np.ceil(arr)) [[ 1. -0. 1.] [ 2. 1. 2.]] print(np.floor(arr)) [[ 0. -1. 0.] [ 1. 0. 1.]] print(np.rint(arr)) [[ 1. -0. 0.] [ 1. 1. 1.]] print(np.isnan(arr)) [[False False False] [False False False]] print(np.multiply(arr, arr)) [[0.38533249 0.15670562 0.0057096 ] [1.31337102 0.37317137 1.8963865 ]] print(np.divide(arr, arr)) [[1. 1. 1.] [1. 1. 1.]] print(np.abs(arr)) [[0.62075155 0.39586061 0.07556188] [1.14602401 0.61087754 1.3770935 ]] print(np.where(arr 0, 1, -1)) [[ 1 -1 1] [ 1 1 1]] 2 统计函数np.mean(), np.sum()所有元素的平均值所有元素的和参数是 number 或 arraynp.max(), np.min()所有元素的最大值所有元素的最小值参数是 number 或 arraynp.std(), np.var()所有元素的标准差所有元素的方差参数是 number 或 arraynp.argmax(), np.argmin()最大值的下标索引值最小值的下标索引值参数是 number 或 arraynp.cumsum(), np.cumprod()返回一个一维数组每个元素都是之前所有元素的 累加和 和 累乘积参数是 number 或 array多维数组默认统计全部维度axis参数可以按指定轴心统计值为0则按第0个维度统计值为1则按第1个维度统计。import numpy as np arr np.arange(12).reshape(3, 4) print(arr) [[ 0 1 2 3] [ 4 5 6 7] [ 8 9 10 11]] print(np.cumsum(arr)) # 前缀和 [ 0 1 3 6 10 15 21 28 36 45 55 66] print(np.sum(arr)) # 所有元素的和66 print(np.sum(arr, axis0)) # 数组的按第0个维度统计和[12 15 18 21] print(np.sum(arr, axis1)) # 数组的按第1个维度统计和[ 6 22 38]3 比较函数np.any(): 至少有一个元素满足指定条件返回Truenp.all(): 所有的元素满足指定条件返回Trueimport numpy as np arr np.random.randn(2,3) # randn均值 0标准差 1大部分数字在-2~2 print(arr) [[-0.37764946 0.19308709 -0.21882821] [ 2.32190081 1.79766043 -0.21875982]] print(np.any(arr 0)) print(np.all(arr 0))4 去重函数np.unique():找到唯一值并返回排序结果类似于Python的set集合import numpy as np arr np.array([[1, 4, 1], [3, 2, 1]]) print(arr) [[1 4 1] [3 2 1]] print(np.unique(arr)) # [1 2 3 4]5 排序函数import numpy as np arr np.array([1, 2, 34, 5]) # np.sort()返回排序后的副本 sortarr1 np.sort(arr) print(sortarr1) print(arr) # ndarray直接调用sort在原数据上进行修改 arr.sort() print(arr)5 NumPy运算1 基本运算import numpy as np a np.array([10, 10, 10, 10]) b np.arange(4) c a b print(a) # [10 10 10 10] print(b) # [0 1 2 3] print(c) # [10 11 12 13]2 矩阵乘法np.dot/x.dot(y)【矩阵乘法】数学里的点积、行列相乘求和import numpy as np x np.array( [[1, 1, 1], [1, 1, 1]] ) y np.array( [[1, 1], [1, 1], [1, 1]] ) print(x.dot(y)) print(np.dot(x, y)) [[3 3] [3 3]] *【逐元素相乘】对应位置的数字直接相乘import numpy as np a np.array( [[2, 2, 2], [3, 3, 3]] ) b np.array( [[2, 2, 2], [3, 3, 3]] ) print(a * b) [[4 4 4] [9 9 9]]