Numpy Расширенное индексирование: Как происходит трансляция? - PullRequest
0 голосов
/ 21 июня 2020
array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11]])

, если мы запустим следующий оператор

x[1:, [2,0,1]]

, мы получим следующий результат

array([[ 6,  4,  5],
      [10,  8,  9]])

Согласно numpy do c:

Расширенные индексы всегда широковещательные и повторяются как один:

Я не могу понять, как здесь происходит объединение индексов, а также широковещательная передача.

1 Ответ

0 голосов
/ 01 июля 2020

Из NumPy Руководство пользователя, Раздел 3.4.7 Объединение массивов индексов с срезами

срез преобразуется в массив индексов np. массив, который транслируется с индексным массивом для создания результирующего массива.

В нашем случае срез 1: преобразуется в индексный массив np.array ( [[1,2]]) который имеет форму (1,2) . Это массив индексов строк . Следующий индексный массив ( индексный массив столбца ) np.array ([2,0,1]) имеет shape (3,2)

  • форма массива индексов строк (1,2)
  • форма массива индексов столбцов (3,2)

массивы индексов имеют другую форму. Но они могут транслироваться в той же форме. Массив индекса строки транслируется в соответствии с формой массива индекса столбца.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...