numpy中的/和/=

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再也没有关系了
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容