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

时间:2019-09-20 10:02:56

标签: python arrays numpy 3d slice

Python 3.x

我有一个for循环,它正在进行一些计算并创建一个Slice / 2D数组,每次迭代说(x = 3,y = 3),我想同时在同一for循环中(追加?/堆栈)他们在第三维。

我一直在尝试使用Numpy堆栈,vstack,hstack和dstack,但是我仍然不知道如何在第3维上将它们组合在一起。

所以我想在他们身上这样结束:

(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.]],

        .
        .
        .

                     ])

谢谢

1 个答案:

答案 0 :(得分:0)

您可以这样做

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

np.asarray(arrays)

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