У меня есть следующий фрагмент кода:
import numpy as np
arr = np.arange(10)
slice = arr[2:5]
slice[:] = 12
print(arr)
slice = slice / 2
print(arr)
Вывод будет:
[ 0 1 12 12 12 5 6 7 8 9]
[6. 6. 6.]
[ 0 1 12 12 12 5 6 7 8 9]
Таким образом, первый раз, когда slice
- это просто ссылка на часть arr
, поэтому его изменение также изменяет массив, но во второй раз он становится копией этой части массива, а его изменение не делает никаких изменений. разница в arr
. Почему это происходит? Что отличает slice = slice / 2
?