Python 3.x создает 3D-объем с 2D-срезами - PullRequest
0 голосов
/ 20 сентября 2019

Python 3.x

У меня есть цикл for, который выполняет некоторые вычисления и создает один Slice / 2D Array, скажем (x = 3, y = 3) за одну итерацию, и яхотите одновременно в одном и том же цикле for (добавить? / стек) их в третьем измерении.

Я пытался использовать Numpy stack, vstack, hstack, dstack, но я до сих пор не понимаю, как собрать их вместе в третьем измерении, как я хочу.

Так что я бы хотелиметь на них конец примерно так:

(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 голосов
/ 20 сентября 2019

вы можете сделать это следующим образом

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

np.asarray(arrays)

Если вы хотите, вы можете сделать np.asarray (массивы) внутри цикла.Но это будет не очень эффективно.Не то, чтобы np.concatenate также эффективно создавал новый массив NumPy, поэтому эффективность будет аналогичной.Делать эти операции один раз за пределами цикла лучше

...