美文网首页
numpy中的/和/=

numpy中的/和/=

作者: cheerss | 来源:发表于2018-12-19 16:34 被阅读0次
import numpy as np
a = np.array([2,4,6])
b = a
b = b/2
print(b) # [1,2,3]
print(a) # [2,4,6]
import numpy as np
a = np.array([2,4,6])
b = a
b /= 2
print(b) # [1,2,3]
print(a) # [1,2,3]

以上两段代码唯一的不同之处就在于b=b/2b/=2,因为C++的思想影响,总觉得/=/是等价的:

  1. 实际上在numpy中,+=/=等符号类似于一个被重载过的运算符,含义是对numpy中的每一个元素进行+=的操作,操作完成后b的id值没有变,指向的还是同一块内存,而内存中的内容变了
  2. +再赋值的含义则是很清晰的,相当于开辟一块内存进行加法操作,而后赋值给b,赋值后b的内存地址已经变了,它的值和a再也没有关系了

相关文章

网友评论

      本文标题:numpy中的/和/=

      本文链接:https://www.haomeiwen.com/subject/bhijkqtx.html