Как замаскировать «обрезать» многомерный массив Numpy по N измерениям? - PullRequest
1 голос
/ 29 марта 2019

скажем, у меня есть массив a, который может быть N-мерным, но для простоты скажем его:

a = np.array([[0,1,2],
             [3,4,5]])

У меня также есть маска или обрезка (я не знаю правильного термина), которыйимеет длину N, поэтому в этом случае что-то вроде:

b = [1,2]

Как я могу "обрезать" массив так, чтобы он:

a = a[:b]

, который бы нарезал так же, как:

a = a[:1,:2]

но будет работать независимо от значения N.

1 Ответ

2 голосов
/ 29 марта 2019

Использовать slice обозначение -

a[tuple([slice(None,bi) for bi in b])]

Или с его сокращением np.s_ -

a[tuple([np.s_[:bi] for bi in b])]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...