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 数组,因此效率将是相似的。在循环外执行此操作会更好