如何在NumPy中将一维数组b追加到二维数组a的每一行?
NumPy数组每行追加另一数组的最简实现
给定两个NumPy数组:
import numpy as np a = np.array([[0,0,1], [0,1,0], [0,1,1], [1,1,1], [1,1,0], [0,0,0]]) b = np.array([9,9,9])
要将数组b追加到a的每一行得到目标数组c,最简方法是结合np.tile和np.hstack实现:
# 将b重复为与a行数一致的二维数组,再与a水平拼接 c = np.hstack((a, np.tile(b, (a.shape[0], 1))))
原理说明
np.tile(b, (a.shape[0], 1)):把一维数组b沿着行方向重复a.shape[0]次,生成一个和a行数相同、列数与b一致的二维数组。np.hstack():将两个二维数组在水平方向(列维度)拼接,最终得到每行末尾都追加了b的目标数组。
如果想利用广播机制省略显式重复,也可以用以下写法:
c = np.hstack((a, np.broadcast_to(b, (a.shape[0], len(b)))))
内容的提问来源于stack exchange,提问作者pepazdepa
相关产品推荐
相关产品推荐

