numpy 数组拷贝地址所引起的同步替换问题
问题出现原因
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]
解决方案
其实numpy给我们准备了解决方法,使用copy方法即可:
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 数组拷贝同步替换内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Python利用Gradio与EasyOCR构建在线识别文本的Web应用
随着人工智能的不断发展,各种智能算法越来越普遍,本文就给大家介绍一种通过训练好的算法进行文字识别的方法,而且是Web页面可视化操作,方便调用,希望大家喜欢2023-04-04
python GUI库图形界面开发之PyQt5树形结构控件QTreeWidget详细使用方法与实例
这篇文章主要介绍了python GUI库图形界面开发PyQt5树形结构控件QTreeWidget详细使用方法与实例,需要的朋友可以参考下2020-03-03
详解Python结合Genetic Algorithm算法破解网易易盾拼图验证
很多网站在登录或者注册时都会遇到拼图验证码,这种拼图验证码实际上是多个小碎片经过重新组合成的一张整体。本文将和大家分享一个基于Python Genetic Algorithm的破解拼图验证码的办法,需要的可以参考一下2022-02-02
Python的Tornado框架实现图片上传及图片大小修改功能
Tornado是一个异步的Python Web开发框架,同时也是一个优秀的异步服务器开发库,这里我们将来讲解一下Python的Tornado框架实现图片上传及图片大小修改功能方面的一些重点:2016-06-06


最新评论