Итерация по многомерному массиву определенным образом - PullRequest
0 голосов
/ 25 октября 2018

У меня есть массив с формой (1000, 4, 200)

import numpy as np 
array = np.ndarray((1000, 4, 200), dtype=int)

4 используется для представления количества каналов, 200 используется для представления количества выборок, а 1000 используется дляпредставляют, ну ... временную область (не знаю, как ее выразить)

Как перебрать этот массив в определенном порядке, таком, чтобы внутри цикла for при печати формы моего массива для каждогоиз 200 сэмплов, он должен напечатать,

SAMPLE: 1 
(1000, ) #Channel1
(1000, ) #Channel2
(1000, ) #Channel3
(1000, ) #Channel4

SAMPLE: 2 
(1000, ) #Channel1
(1000, ) #Channel2
(1000, ) #Channel3
(1000, ) #Channel4

SAMPLE: 3 
(1000, ) #Channel1
(1000, ) #Channel2
(1000, ) #Channel3
(1000, ) #Channel4
.
.
.
SAMPLE: 200 
(1000, ) #Channel1
(1000, ) #Channel2
(1000, ) #Channel3
(1000, ) #Channel4

Это не так уж точно, чтобы мое утверждение печати было точным, я просто хочу иметь возможность извлекать каждый канал один за другим с временной областью в качестве вектора столбца..

Что я попробовал?

Ну .. Я ничего особенного не сделал, у меня просто есть вложенный цикл, который проходит через каждое измерение слева направо, и это не то, что яхочу.

1 Ответ

0 голосов
/ 25 октября 2018

Это было ОЧЕНЬ просто: просто используйте transpose ..

array = array.T
for row in array:
    for channel in row:
        print(channel.shape)
    print()
...