如何扩展NumPy数组维度(新增列),有没有更高效的实现方法?
更简洁高效的实现方案
你当前使用列表推导配合np.insert的方案需要逐行遍历数组,数据量较大时性能偏低,以下是基于NumPy向量化运算的优化方案:
- 方案1:使用
np.c_(写法最简洁)
a = np.c_[a, np.full(a.shape[0], 5)]
- 方案2:使用
np.hstack(水平拼接,性能最优)
注意需要将填充列调整为二维列向量,和原数组维度匹配:
a = np.hstack([a, np.full((a.shape[0], 1), 5)])
- 方案3:使用
np.column_stack
专门用于按列拼接数组,无需额外调整一维数组的维度:
a = np.column_stack([a, np.full(a.shape[0], 5)])
以上三种方案均为整体向量化操作,不需要逐行遍历数组,运行效率远高于你当前的实现,数组规模越大性能优势越明显。
内容的提问来源于stack exchange,提问作者Jeroen Vermunt
相关产品推荐
相关产品推荐

