为什么子数组单独替换影响主数组,向量化后不影响主数组?
例如如果代码是:
import numpy as np
Z =np.array(
[[0,4,0,0,0,0],
[0,0,0,1,0,0],
[0,1,0,1,0,0],
[0,0,1,1,0,0],
[0,0,0,0,0,0],
[0,0,0,0,0,0]])
print Z
X= Z[1:4,0:3]
X[0][0]=9
print X
print Z #<=== X affects Z
X=X*3+1
print X
print Z #<=== X do not affect Z
请您参考如下方法:
那是因为对 Numpy 数组进行切片会返回原始数组的 View ,因此修改它也会影响原始数组。
来自 docs :
All arrays generated by basic slicing are always views of the original array.
