【问题标题】: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)

有没有更好更快的解决方案。

【问题讨论】:

    标签: arrays numpy append


    【解决方案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 成为二维的。你是对的,没有它也可以工作,所以你可以忽略。
    • 这比第一个基于循环的方法快吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-01
    • 2021-01-20
    • 1970-01-01
    • 2019-03-22
    相关资源
    最近更新 更多