【发布时间】:2020-02-21 07:02:25
【问题描述】:
所以我知道如何将 2 个 2d 数组组合成 3d。我做了这样的事情:
a = np.arange(25).reshape(5,5)
b = np.arange(26,51).reshape(5,5)
c = np.stack((a,b))
这似乎工作正常。问题是我需要遍历一个循环来堆叠多个二维数组,并且我需要输入这样的二维数组的数量(即 # 未知)。
所以我做到了:
t = np.array([]).reshape(0,5,5)
t = np.stack((t,a)) #loop over each 2d array represented by a
我收到此错误:
ValueError Traceback(最近调用 最后)在 ----> 1 t = np.stack((t,a))
array_function internals> in stack(*args, **kwargs)
~/anaconda3/envs/pytorch/lib/python3.7/site-packages/numpy/core/shape_base.py 在堆栈中(数组,轴,出) 423 个形状 = {arr.shape 用于数组中的 arr} 424如果len(形状)!= 1: --> 425 raise ValueError('所有输入数组必须具有相同的形状') 426 427 结果_ndim =数组[0].ndim + 1
ValueError:所有输入数组必须具有相同的形状
有什么建议吗?谢谢!
【问题讨论】:
-
将它们组合成一个列表,然后只做一个
stack。它更高效,更容易正确。