Меня смущает другая часть статьи в прикрепленной ссылке:
https://scipy -cookbook.readthedocs.io / items / ViewsVsCopies.html
В разделе «Но причудливое индексирование иногда возвращает представления, не так ли?»
Первая идиома:
a = np.arange(10)
a[[1,2]] = 100
a
#array([ 0, 100, 100, 3, 4, 5, 6, 7, 8, 9])
Вторая идиома:
a = numpy.arange(10)
c1 = a[[1,2]]
c1[:] = 100
a
#array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> c1
#array([100, 100])
Я все еще немного озадачен тем, как первая идиома способна вносить изменения?
Они объясняют, что первая идиома не вызывает getitem до setitem но почему он этого не делает?
Я думал, что все причудливые индексы возвращали копию данных, а не представление, независимо от используемой идиомы?
Хотя причудливая индексация не создает представление, как они демонстрируют, поскольку оно все еще даетжелаемый результат, все еще считается хорошей практикой использовать его, как показано в идиоме 1?