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

Рассмотрим следующий фрагмент:

a = np.ones((2,2,2,2,2))
for example in a:
    for row in example:
        for col in row:
            for box in col:
                print (box.shape)

Наличие стольких вложенных for s приводит к очень уродливому коду.

Как получить тот же эффект только с одной явной итерацией

1 Ответ

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

Измените ваш массив:

for box in a.reshape(16,2):
    print(box.shape)

Общее решение:

for box in a.reshape(np.prod(a.shape[:-1]), a.shape[-1]):
     print(box.shape)

, которое всегда будет повторяться в одном измерении до последнего a.

...