NumPy 函数速查表 - NumPy 常用命令与数组操作大全
这套速查面向常用 Python 处理数组的开发者,无论做数据分析、几何计算还是给模型做输入预处理都会用到:从 np.array/np.zeros 建数组,到索引起始值切片取数据、reshape 变换形状、sum/mean 做统计,再到 a @ b 做矩阵乘。与纯 API 手册不同,条目按"建数组→取值→变形→算账→存盘"的实战链路组织。读完应能想到每个阶段用哪个函数,并避开广播和视图/副本最容易踩的那几个坑。
数组创建 9
np.array([1, 2, 3])从列表创建数组
np.zeros((3, 4))创建 3×4 全 0 数组
np.ones((2, 3))创建 2×3 全 1 数组
np.arange(0, 10, 2)等差数组 [0, 2, 4, 6, 8]
np.linspace(0, 1, 5)0 到 1 等分 5 个点
np.eye(3)3×3 单位矩阵
np.random.rand(3, 3)3×3 均匀分布随机数
np.random.randn(3, 3)3×3 标准正态分布
np.random.randint(0, 10, (2, 3))2×3 随机整数
索引与切片 6
a[0]取首个元素,结果是一个标量;取多行多列才是子数组
a[1:3]切片取第 2、3 个元素,返回的是视图(view),修改它会影响原数组
a[a > 5]布尔索引,保留满足条件 a > 5 的元素,常用于按阈值筛选/掩码取值
a[[0, 2, 4]]花式索引,用整数数组按位置取指定行,返回的是副本而非视图
a[1:3, 2:4]二维切片:取行 1-2、列 2-3 相交的子块
np.where(a > 5, a, 0)条件替换:满足 a > 5 保留原值,否则置 0,批量做"大于阈值才计入"很常用
形状变换 8
a.shape查看数组各维度长度,如 (3, 4) 表示 3 行 4 列
a.reshape(2, 3)变换为 2×3 形状,元素总数必须一致;reshape 通常返回视图
a.flatten()展平为一维数组,返回的是副本,改它不影响原数组
a.T转置交换维度:二维即行列互换,一维数组转置前后不变
np.concatenate([a, b], axis=0)沿指定轴拼接数组,除拼接轴外其余维度必须一致,用 axis 控制是拼行还是拼列
np.vstack([a, b])垂直方向堆叠(上下拼接),要求列数一致
np.hstack([a, b])水平方向堆叠(左右拼接),要求行数一致
np.split(a, 3)沿默认轴把数组等分为 3 个子数组,若不能整除会抛错
数学与统计 10
a.sum()对全部元素求和,传 axis 可沿指定轴求和(如按行/按列)
a.mean()计算所有元素的算术平均值,同样支持 axis 参数做分轴均值
a.std()计算标准差,衡量数据相对均值的离散程度,axis 可选
a.min() / a.max()返回数组中的最小值 / 最大值
a.argmin() / a.argmax()返回最小值 / 最大值出现的位置索引,配合扁平化常用于定位最值所在下标
a.cumsum()累积和:第 i 位是前 i+1 个元素之和,常画累积分布图用
np.dot(a, b)矩阵点积:按内积规则两两相乘再累加,适合向量/矩阵卷积基础运算
a @ b矩阵乘法(Python 3.5+ 的 @ 运算符),等同 np.matmul,做线性代数和矩阵变换用
np.sort(a)对数组排序并返回排序后的新数组;要原地排序可先调 a.sort()
np.unique(a)去重并返回升序排列的独有元素,加 return_counts=True 可得各元素出现次数
广播与保存 7
a + 1广播:每个元素加 1
a * 2广播:每个元素乘 2
a + b(形状兼容即可)广播运算
np.save("data.npy", a)保存为 npy 文件
np.load("data.npy")加载 npy 文件
np.savetxt("data.csv", a, delimiter=",")保存为 CSV
np.loadtxt("data.csv", delimiter=",")从 CSV 加载
提示
- NumPy 数组是同构的,所有元素类型必须一致,混类型会自动提升。
- 广播规则:两个维度从后往前比较,相等或其中一个为 1 才能广播。
- a * b 是元素级乘法,矩阵乘法用 a @ b 或 np.dot(a, b)。
由 巧匠 维护
公开更新于 2026年7月21日,内容持续校对官方文档。