ThinkSSL🔒 一键申购 5分钟快速签发 30天无理由退款 购买更放心 广告
## NumPy ### 创建多维 * 矩阵 数组 向量 * 1 创建数组 * 一维二维数组 * 查看形状 * 元素个数 * 元素类型 * 数组维度 * 最大最小值 ``` import numpy as np # 一维数组 a1 = np.array([1, 2, 3, 4]) # 多维数组各个维度的大小,返回一个元组 a1.shape # 数组里面元素个数 a1.size # 数组中数据类型 a1.dtype # 二维数组 a2 = np.array([[1.0, 2.5, 3], [0.5, 4, 9]]) a2.shape,a2.size,a2.dtype a2.min() a1 a2 # 数组类型为ndarray type(a1) ``` * 2 创建数组 * 指定值范围 * 值全为1 * 值全为0 * 值全无意义 * 值全为1三维 ``` # 元素值为0-3数组 a1 = np.arange(4) a1 # 查看维数 a1.ndim # 元素值全为1 4x4数组 a2 = np.ones((4, 4), dtype=np.int64) a2 a2.dtype a2.ndim a2.shape # 元素值全为0 2x2数组 a3 = np.zeros((2, 2)) a3 a3.dtype a3.ndim a4 = np.empty((3, 3), dtype=np.int64) a4 a4.dtype a4.shape a4.ndim a5 = np.ones((4, 3, 4)) a5 a5.ndim ``` * 3 改变数组现状 ``` a = np.arange(12) a a.reshape(4, 3) ``` ### 多维数组索引 * 4 列表切片 ``` l = [1, 2, 3, 4, 5] l[:2] l[2:4] l[1:5:2] ``` * 5 数组切片 ``` a = np.arange(12) a a[1:4] a[1:10:2] ``` * 6 数组的值修改 ``` a = np.arange(12) a a[1:5] = -1 a a[1:10:2] = 1 a ``` * 7 数组 * 二维数组 * 查看数组行 * 查看数组列 * 修改行列固定位置值 ``` a = np.arange(12).reshape(3, 4) a.shape a a[0] a[1] a[:, 0] a[:, 1] a[:, 2] a[0, 0] a[0, 1] a[1, 1] a[1, 2] a[0] = 1 a a[:, 1] = -1 a ``` * 8 多维数组降维 * 三维抽取出二维 * 查看形状 维度 值 列 行 赋值 ``` a = np.arange(27).reshape(3, 3, 3) a.ndim a.shape a a1 = a[1] a1 a1.shape a2 = a[1, 1] a2 a2.shape a2.ndim a[2, 2, 2] a[:, 1] a[:, 1] = 1 a ``` #### 多维数组运算 * 9 矩阵运算 * 所有元素全部加 * 所有元素全部乘 ``` a = np.arange(12).reshape(3, 4) a a += 1 a a *= 2 a ``` * 10 两个数组运算 * `+` `-` 乘法 内积 ``` a = np.arange(4).reshape(2, 2) b = np.arange(4, 8).reshape(2, 2) a b b - a a + b a * b a.dot(b) ``` * 11 逻辑比较运算 * 挑选出矩阵中逻辑运算为true的值 ``` a = np.arange(12).reshape(4, 3) b = a > 5 b a[b] ``` * 12 数组元素求和 * 数组求和 * 数组列求和 * 数组行求和 ``` a a.sum() a.sum(axis=0) a.sum(axis=1) ```