Разница в индексации - PullRequest
       6

Разница в индексации

0 голосов
/ 27 января 2019

Почему этот результат индексации в разных массивах?

import numpy as np

x = np.array(range(0,2*3*4)).reshape(2,3,4)

print(x[0,:,[2,3]])
print(x[0,:,2:])

первый вывод

[[ 2  6 10]
 [ 3  7 11]]

второй вывод

[[ 2  3]
 [ 6  7]
 [10 11]]

во втором случае2: означает взять от 2-го значения до конца, последний столбец этого dim - это 3-й столбец, это означает, что он принимает 2-е и 3-е измерения, поэтому это то же самое, что и [2,3], так чточем отличаются оба способа индексации массивов?

Ответы [ 2 ]

0 голосов
/ 27 января 2019

В первом случае x[0,:,[2,3]] означает, что numpy вернет массив, такой, что x[0,:,2] - это первый элемент, за которым следует x[0,:,3].Во втором случае x[0,:,2:] вы запрашиваете numpy для 2-го и 3-го столбца 0-й матрицы.

Документация по индексированию доступна здесь .

0 голосов
/ 27 января 2019

Правила различны для индексации с помощью массива (или списка) целых чисел и для нарезки.Это подробно объясняется в документации , в частности в части, посвященной смешиванию расширенного и базового индексирования .

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