【问题标题】:Combining list of 2D numpy arrays组合二维 numpy 数组的列表
【发布时间】:2019-06-06 23:31:12
【问题描述】:

如何组合N、2D numpy 数组(维度为R x C)来创建形状为(N, R, C) 的 3D numpy 数组?现在,N-2D numpy 数组包含在一个列表中,我希望它成为一个 3D numpy 数组。假设 X 是我的二维 numpy 数组列表,如果我只做 np.array(X),我会得到一些形状 (N,)。如果我做np.vstack(X),我会得到一些形状(N x R, C)。我该如何解决这个问题?

【问题讨论】:

  • 如果 np.array(X) 没有给你一个 3d 数组,我怀疑其中一个 2d 数组的大小不同。您可以尝试np.stack(X),但它也希望形状匹配。如果它们只是在 R 形状上有所不同,vstack 应该可以工作,但N*R 尺寸是值得怀疑的。你可以重塑 vstack 结果。
  • 谢谢问题确实是这样。一旦我解决了这个问题,我就很好了。

标签: python numpy multidimensional-array concat


【解决方案1】:

你可以使用np.stack:

test = np.stack([np.ones([2, 3]) for _ in range(4)]) 
print(test.shape) # (4, 2, 3)

【讨论】:

    【解决方案2】:

    你可以使用:

    np.array([np.array(x) for x in ArrayList])
    

    【讨论】:

    • 如果 2DarrayList 已经是一个 numpy 数组列表,则不需要列表 comp。注意:2DarrayList 不是有效的变量名
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-04
    • 2016-05-16
    相关资源
    最近更新 更多