在二维数组的每一行末尾添加一个列表。

4
我希望在一个二维数组(a)的每一行末尾添加一个列表/1维数组(b)。
输入:
a = np.array([[1, 1], [2, 2], [3, 3]])
b = np.array([4, 4])

期望输出:

array([[1, 1, 4, 4],
       [2, 2, 4, 4],
       [3, 3, 4, 4]])

我的代码:

temp = []
for i in range(len(a)):
   c = np.hstack((a[i], b))
   temp.append(c)
d = np.vstack(temp)

有没有更好更快的解决方案?
1个回答

4
a = np.array([[1, 1], [2, 2], [3, 3]])
b = np.array([4, 4])

c = np.tile(b[np.newaxis,:], (a.shape[0],1))
d = np.concatenate((a,c), axis=1)

谢谢@Joel。我理解你是将b铺设成与a相同的形状,然后进行连接。但是我不理解b[np.newaxis,:]的含义。相反,np.tile(b, (a.shape[0],1))也可以工作。 - SNA
我只是添加了 np.newaxis 来使 b 成为二维的。你是对的,没有它也可以运行,所以你可以忽略它。 - Joel Vroom
1
这个方法比第一个基于循环的方法更快吗? - user58419

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接