Python 3.x 使用 2D 切片创建 3D 体积



Python 3.x

我有 for 循环,它正在进行一些计算并创建一个切片/2D 数组,假设每次迭代 (x = 3, y = 3(,我希望同时在同一个 for 循环中(附加?/堆叠(它们在第三维中。

我一直在尝试使用Numpy堆栈,vstack,hstack,dstack,但我仍然不知道如何按照我想要的方式将它们放在3rd维度上。

所以我想在他们那里结束这样的东西:

(z = 10, x = 3, y = 3(

array([ [[0., 0., 0.],
[0., 0., 0.],
[0., 0., 0.]],
[[1., 1., 1.],
[1., 1., 1.],
[1., 1., 1.]], 
[[2., 2., 2.],
[2., 2., 2.],
[2., 2., 2.]],
.
.
.
])

谢谢

你可以这样做

arrays = []
for i in range(5):
arr = np.full((3,3), i)
arrays.append(arr)
np.asarray(arrays)

如果你愿意,你可以在循环内做np.asarray(arrays(。但它不会很有效率。并不是说np.concatenate也会有效地创建新的 numpy 数组,因此效率将是相似的。在循环外执行此操作会更好

最新更新