Numpy: изменить форму матрицы по блокам - PullRequest
0 голосов
/ 01 октября 2019

У меня есть матрица

[
    [ [1, 2, 3],    [4, 5, 6],    [7, 8, 9],    [10, 11, 12] ],
    [ [13, 14, 15], [16, 17, 18], [19, 20, 21], [22, 23, 24] ]
]

, и я хочу получить

[
    [ [1, 2, 3], [4, 5, 6], [13, 14, 15], [16, 17, 18] ],
    [ [19, 20, 21], [22, 23, 24] ]
]

В этом примере блок имеет размер 2x2x3, но он может иметь размер XxYx3. Я пробовал разные reshape() и transpose(), параметр порядка, но ничего не помогает

1 Ответ

1 голос
/ 02 октября 2019

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

Здесь вы можете найти пример, чтобы помочь прояснить идеи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...