Skip to main content
 首页 » 编程设计

python之子数组单独替换影响主数组,向量化时不影响主数组

2025年05月04日17hnrainll

为什么子数组单独替换影响主数组,向量化后不影响主数组?

例如如果代码是:

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.