【发布时间】:2018-11-07 08:48:25
【问题描述】:
我正在尝试将导致 3D 数组的计算结果堆叠成行(轴 = 0)。我不提前知道结果。
import numpy as np
h = 10
w = 20
c = 30
result_4d = np.??? # empty
for i in range(5):
result_3d = np.zeros((h, w, c)) #fake calculation
result_4d = np.??? # stacked result_3ds on axis=0
return result_4d
我尝试了 numpy *stack 调用的各种排列,但我不可避免地遇到了形状不匹配错误。
【问题讨论】:
-
一旦你很好地理解了数组的形状,你就可以定义正确的“空”起点。这是锻炼形状的好方法,但不是最快的方法。
-
如需更详细的答案,请阅读stackoverflow.com/questions/53135673/…
-
连接数组的基本工具是
np.concatenate。这需要一个 n-d 数组的列表,并将它们连接到选定的轴上以创建一个新的 n-d 数组。这意味着,要获得 4d 数组,您需要从 4d 数组开始。如果您使用迭代方法,则初始“空”数组本身必须是 4d,但包含 0 个元素。