Неправильные примеры в документации по индексированию NumPy? - PullRequest
0 голосов
/ 11 июня 2018

На индексированной нумерации страница есть предупреждающий абзац

Определение расширенной индексации означает, что x [(1,2,3),] принципиально отличаетсячем х [(1,2,3)].Последний эквивалентен x [1,2,3], который вызовет базовый выбор, тогда как первый вызовет расширенную индексацию.Обязательно поймите, почему это происходит.

Я попытался запустить следующий код

import numpy as np

x = np.arange(3*4).reshape((3, 4))
y = x[(1, 2)]
z = x[(1, 2),]

print("base:", x.base, y.base, z.base)
print("id:", id(x.base), id(y.base), id(z.base))
print(np.shares_memory(x, y), np.shares_memory(x, z))

и получил результаты как

base: [ 0  1  2  3  4  5  6  7  8  9 10 11] None None
id: 4299634928 4297628200 4297628200
False False

Кажется, чтоy не возвращает представление и, следовательно, x[(1, 2)] не может быть базовой индексацией, потому что

Все массивы, сгенерированные базовой секцией, всегда являются представлениями исходного массива.

Это ошибка в документации?Или я где-то не так понял?

1 Ответ

0 голосов
/ 11 июня 2018

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

...