?=问题出现原因
Python里numpy默认的是浅拷贝,即拷贝的是对象内存地址,导致两个数据结构共用一个内存地址。结果是修改拷贝的值的时候原对象也会随之改变,如代码所示:
a = nP.arange(3) print(a) b = a print(b) b[0] = 10 print(b) print(a)
输出的结果为:
[0 1 2][0 1 2][10 1 2][10 1 2]
解决方案
nArray.copy()
a = np.arange(3) print(a) b = a.copy() print(b) b[0] = 10 print(b) print(a)
输出的结果为:
[0 1 2][0 1 2][10 1 2][0 1 2]
达到了只修改一个数据结构的要求!
到此这篇关于NumPy 数组拷贝地址所引起的同步替换问题的文章就介绍到这了,更多相关numpy 数组拷贝同步替换内容请搜索云初冀北以前的文章或继续浏览下面的相关文章希望大家以后多多支持云初冀北!
$
还没有评论,来说两句吧...