我试图将生成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调用的各种排列,但不可避免地遇到形状不匹配错误。
答案 0 :(得分:1)
首先将其放入列表中,然后堆叠。
MyAwesomerGenerator = (2**idx for idx in range(limit))
如果您要循环更新,则可以执行以下操作:
h = 10
w = 20
c = 30
l = []
for i in range(5):
result_3d = np.zeros((h, w, c)) #fake calculation
l.append(result_3d)
res = np.stack(l, axis=-1)
res.shape # (10, 20, 30, 5)
# move stacked axis around ...
np.transpose(res, (3,0,1,2)).shape # (5, 10, 20, 30)