如何添加列表元素

时间:2017-06-08 13:26:30

标签: python arrays numpy numpy-broadcasting

我有一个列表(Y),其中包含不同长度的numpy数组。列表包含50多个元素(我刚刚拿了五个用于测试)。列表的形状是5,我可以打印每个元素的形状如下所示,输出在评论中

print(Y.shape) #(5,)
print(Y[0].shape) #(600, 2)
print(Y[1].shape) #(250, 2)
print(Y[2].shape) #(300, 2)
print(Y[3].shape) #(200, 2)
print(Y[4].shape) #(100, 2)

列表中的每个元素都有不同的长度(600,250,300,200,100),但都有[1 0]或[0 1]维度。我想添加这些元素并获得输出

  

(1450,2)

我试过了

  

Y = np.sum(Y,轴= 0)

它给出了广播错误,ValueError:操作数不能与形状(600,2)(250,2)一起广播,我知道这需要(600,2)(600,2)或(250,2) (250,2)但我想添加600和250。

同样的功能适用于像[80,20,30]和[40,20,30]这样的三维数组我输出为[120,20,30]

如何添加/总结这些元素?

1 个答案:

答案 0 :(得分:1)

使用np.concatenate

np.concatenate(Y, axis=0)

例如:

import numpy as np

Y1 = np.ones((100, 2))
Y2 = np.ones((200, 2))
Y3 = np.ones((300, 2))

np.concatenate([Y1, Y2, Y3], axis=0).shape   # (600, 2)