在二维数组的每一行末尾附加一个列表
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
成为二维的。你是对的,没有它也可以工作,所以你可以忽略。
这比第一个基于循环的方法快吗?以上是关于在二维数组的每一行末尾附加一个列表的主要内容,如果未能解决你的问题,请参考以下文章