Неопределенность индексации 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)
вместо. Почему эта двусмысленность? Как я должен интерпретировать результат?