python3中nparray实现值复制

今天在做cs231n关于forward/backward的作业时,一个bug找了很久,原因是我利用A来初始化B,并对B进行修改,结果发现A变了。代码如下

B = A
B[A>0]=0
#结果发现A也被改变了

本质原因是因为两个对象指向同一快内存,那该怎么解决呢?

第一种思路就是使用deepcopy,但是还要调用copy库

第二种方式是为B开辟一块新的内存,并在之后复制A的值

B = np.zeros_like(A)
B[:] = A
#A和B值相同,并有两个独立内存

注意,如果使用 B=A这种代码,B还是会指向A的内存。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值