целочисленная индексация массива numpy в нескольких измерениях

Я почти уверен, что упустил что-то с целочисленной индексацией и мог бы использовать некоторую помощь. Скажем, я создаю 2D-массив:

>>> import numpy as np
>>> x=np.array(range(24)).reshape((4,6))
>>> x
array([[ 0,  1,  2,  3,  4,  5],
       [ 6,  7,  8,  9, 10, 11],
       [12, 13, 14, 15, 16, 17],
       [18, 19, 20, 21, 22, 23]])

Затем я могу выбрать строки 1 и 2 с помощью:

>>> x[[1,2],:]
array([[ 6,  7,  8,  9, 10, 11],
       [12, 13, 14, 15, 16, 17]])

Или столбец 1 строк 2 и 3 с:

>>> x[[1,2],1]
array([ 7, 13])

Поэтому для меня имеет смысл выбрать столбцы 3, 4 и 5 строк 1 и 2 следующим образом:

>>> x[[1,2],[3,4,5]]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: shape mismatch: objects cannot be broadcast to a single shape

И вместо этого мне нужно сделать это в два этапа:

>>> a=x[[1,2],:]
>>> a
array([[ 6,  7,  8,  9, 10, 11],
       [12, 13, 14, 15, 16, 17]])
>>> a[:,[3,4,5]]
array([[ 9, 10, 11],
       [15, 16, 17]])

Исходя из R, мои ожидания кажутся неверными. Можете ли вы подтвердить, что это действительно невозможно за один шаг, или предложить лучшую альтернативу? Спасибо!

РЕДАКТИРОВАТЬ: пожалуйста, обратите внимание, что мой выбор строк и столбцов в примере оказываются последовательными, но они не должны быть. Другими словами, индексирование срезов не подойдет для моего случая.

Ответы на вопрос(2)

Ваш ответ на вопрос