numpy 数组拷贝地址所引起的同步替换问题

作者:易烊千蝈 时间:2023-11-07 18:00:06 

问题出现原因

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]

达到了只修改一个数据结构的要求!

来源:https://blog.csdn.net/weixin_39490300/article/details/128104405

标签:numpy,数组拷贝,替换
0
投稿

猜你喜欢

  • 如何实现一个python函数装饰器(Decorator)

    2023-12-02 19:38:37
  • Python ftp上传文件

    2023-10-01 06:35:34
  • SQL脚本语言学习(黑客篇)

    2008-02-29 13:09:00
  • 零基础写python爬虫之抓取百度贴吧并存储到本地txt文件改进版

    2022-12-20 08:32:42
  • python学生管理系统开发

    2022-05-20 23:00:00
  • python中subplot大小的设置步骤

    2021-07-30 08:59:37
  • PHP延迟静态绑定的深入讲解

    2024-06-05 15:42:51
  • css表单中textarea域背景图片设置方法

    2008-04-21 13:56:00
  • vue中英文切换实例代码

    2024-05-29 22:29:37
  • pytorch 带batch的tensor类型图像显示操作

    2023-06-02 08:47:26
  • 解析PHP中VC6 X86和VC9 X86的区别及 Non Thread Safe的意思

    2023-11-06 13:11:37
  • Python实现的本地文件搜索功能示例【测试可用】

    2022-04-20 06:11:10
  • MySQL数据表添加字段的三种方式

    2024-01-13 10:49:30
  • python递归删除指定目录及其所有内容的方法

    2022-12-12 02:42:51
  • Python基础教程之异常详解

    2022-02-08 05:48:49
  • Python matplotlib绘制图形实例(包括点,曲线,注释和箭头)

    2021-08-31 22:57:06
  • JavaScript使用Range调色及透明度实例

    2024-04-16 10:36:25
  • 让javascript加载速度倍增的方法(解决JS加载速度慢的问题)

    2024-04-19 11:03:22
  • 上传组件 ASPUpload 使用说明

    2008-09-11 14:38:00
  • 详解Golang实现http重定向https的方式

    2024-05-09 09:47:02
  • asp之家 网络编程 m.aspxhome.com