Неопределенность индексации NumPy в 3D-массивах

У меня есть следующий 3D массив формы

In [159]: arr = np.arange(60).reshape(3, 4, 5)

И я пытаюсь выполнить расширенную индексацию для извлечения подмассива, например:

# behaves as expected
In [160]: arr[[1, 2], :, 1].shape
Out[160]: (2, 4)

В следующем случае я ожидаю, что результат будет иметь форму (4, 2),

# unintended behaviour
In [161]: arr[1, :, [1, 2]].shape
Out[161]: (2, 4)

Так как мы делаем __getitem__ позовите первое измерение, чтобы измерение исчезло. Вдоль второй оси нарезаем все так, как должно быть 4 и вдоль последней оси должно быть 2, Итак, мы должны получить результирующий под-массив формы (4, 2) но мы получаем форму (2, 4) вместо. Почему эта двусмысленность? Как я должен интерпретировать результат?

0 ответов

Другие вопросы по тегам