python3のnumpyのarrayのスライスで、値渡しをしたいとき
- arrayのスライスについて。 arrayは参照渡しらしいです。
arr = np.arange(0,11) print(arr[1:4])
array([1,2,3])
arr = np.arange(0,11) arr[1:4] = 100 print(arr)
array([0,100,100,100,4,5,6,7,8,9,10])
となります。
arr = np.arange(0,11) arr2 = arr[1:4] arr2 = 100 print(arr2)
array([100,100,100])
ここまでは良いと思うのですが、
print(arr)
とすると、
array[0,100,100,100,4,5,6,7,8,9,10]
となります。
アレイは参照らしいです。
なので、値をコピーしたかったら、
arr2 = arr.copy arr2[1:4] = 100 print(arr)
array([0,1,2,3,4,5,6,7,8,9,10])
です