
本文介绍如何利用 `np.full()` 高效生成指定维度、所有元素均为 2 的 numpy 数组,替代先建 `ones` 再乘/赋值的冗余操作,兼顾简洁性与可读性。
在 NumPy 中,创建全零或全一数组有现成函数(如 np.zeros() 和 np.ones()),但若需填充其他固定值(例如全为 2),最直接、语义最清晰的方式是使用 np.full() —— 它专为“初始化指定形状并填充统一值”而设计。
✅ 推荐方法:np.full()
只需指定数组总长度(或形状元组)、填充值和数据类型,再链式调用 .reshape() 即可一步到位:
import numpy as np # 创建 4×5 的二维数组,所有元素均为整数 2 arr = np.full(20, 2, dtype=int).reshape(4, 5) print(arr)
输出:
[[2 2 2 2 2] [2 2 2 2 2] [2 2 2 2 2] [2 2 2 2 2]]
? 小技巧:你也可以直接传入目标形状,省去 reshape 步骤:
arr = np.full((4, 5), 2, dtype=int) # 更直观,推荐!
⚠️ 注意事项:
- 避免用 np.ones(...) * 2 或 np.ones(...).fill(2) —— 前者额外创建临时数组,后者不支持链式调用且易出错;
- dtype 显式声明可防止默认浮点类型(如 float64)导致的意外类型问题;
- 若需更高维数组(如 (3, 4, 5)),直接传入对应元组即可,无需嵌套 reshape。
总结:np.full(shape, fill_value, dtype=...) 是创建任意形状、统一数值数组的首选方案,代码简洁、性能优异、意图明确。








