Ответ 1
У вас другое поведение, потому что в numpy поддерживаются три типа индексирования
- Основная нарезка
- Расширенное индексирование
- Доступ к записи
Использование кортежа для индексирования просто эквивалентно списку параметров, который суффикс как базовая нарезка, где - с использованием списка, не связанного с кортежем, приводит к расширенной индексации.
Также помните, из документации
Расширенное индексирование запускается, когда объект выделения, obj, является объект последовательности без привязки, ndarray (типа данных integer или bool), или кортеж с по меньшей мере одним объектом последовательности или ndarray (типа данных целое или bool). Существует два типа расширенной индексации: integer и Boolean.
Расширенное индексирование всегда возвращает копию данных (контраст с базовая нарезка, которая возвращает представление).
Кроме того, из той же документации
В Python x [(exp1, exp2,..., expN)] эквивалентно x [exp1, exp2,..., expN]; последний является просто синтаксическим сахаром для первого.