Python中如何将numpy数组追加到另一numpy数组的每一行末尾
实现方案
你可以通过Numpy的数组扩展+列拼接能力实现需求,下面是几种常用的实现方式:
方法1:np.hstack + np.tile 组合(最易理解)
import numpy as np # 原始数组 a = np.array(([11,12,13],[21,22,23],[31,32,33],[41,42,43])) b = np.array([88,99]) # 把一维数组b扩展为和a行数相同的二维数组,每行都为[88,99] b_extend = np.tile(b, (a.shape[0], 1)) # 按列拼接两个数组得到结果 c = np.hstack((a, b_extend))
方法2:广播机制轻量化实现
如果不想额外复制b的内容,可以用广播机制实现,内存开销更小:
b_extend = np.broadcast_to(b, (a.shape[0], len(b))) c = np.hstack((a, b_extend))
方法3:np.c_ 简化写法
想要更短的代码可以用列拼接快捷方法np.c_:
c = np.c_[a, np.tile(b, (a.shape[0], 1))]
以上三种方法运行后得到的c都和你给出的目标数组完全一致。
内容的提问来源于stack exchange,提问作者eng2019
相关产品推荐
相关产品推荐

