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

Posted

技术标签:

【中文标题】在二维数组的每一行末尾附加一个列表【英文标题】:append a list at the end of each row of 2D array 【发布时间】:2014-10-21 05:15:45 【问题描述】:

我想在二维数组 (a) 的每一行末尾附加一个列表/一维数组 (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】:
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)) 也有效。 我刚刚添加了np.newaxis 位以使b 成为二维的。你是对的,没有它也可以工作,所以你可以忽略。 这比第一个基于循环的方法快吗?

以上是关于在二维数组的每一行末尾附加一个列表的主要内容,如果未能解决你的问题,请参考以下文章

在 Numpy Python 中将一维数组附加到二维数组

在二维数组中搜索 tableView objC

C语言中二维数组行指针是啥

创建动态二维数组

[剑指offer] 二维数组中的查找

以相反的顺序显示二维数组的行