Python:在循环中将元素添加到numpy数组的第二轴

时间:2017-12-12 03:49:30

标签: python numpy

这个link表明我们可以使用Python列表向其中添加元素,并使用np.array将其转换为numpy数组,其长度未知,如下所示:

a = []
for x in y:
    a.append(x)
a = np.array(a)

假设xnumpy.ndarray形状(h,w),但h和w未知,我们如何在循环中将元素添加到ndarray a的第二轴make a变为(h,w,d),其中d是迭代次数?

我知道我们可以使用dstack将元素添加到一起(h,w,d),但我不太清楚如何在循环中执行此操作。

1 个答案:

答案 0 :(得分:1)

您可以执行类似的操作,但使用x作为2D numpy数组。也就是说,如果您未提前知道数组的数量,则可以在列表中收集它们,然后一步将它们转换为单个3D数组。代码看起来与您的示例非常相似:

gen2d = (i*np.ones((2,2)) for i in range(random.randint(1, 10))) # a generator of unknown N

a = []
for x in gen2d:
    a.append(x)
a = np.dstack(a)

a.shape  # (2, 2, 7)