在操作数组时,它们的数据有时会被复制到新数组中,有时则不会。这通常是初学者感到困惑的根源。有三种情况:
(1)No Copy at All:没有副本,简单赋值不会复制对象或其数据.
a = np.array([1,2,3,4])
b = a
a[0]=9999 # 修改a[0] ,观察b是否有变化
print(b)
print(b is a) # is比较:1.内容相同 2.内存中地址相同
print(id(b)) # id() 返回对象的唯一身份标识
print(id(a))
[9999 2

本文详细介绍了Python中数组操作的三种常见情况:不复制(简单赋值)、浅拷贝(视图)和深拷贝。通过实例展示了它们的区别,包括对数组元素修改及形状改变的影响,强调了何时使用深拷贝以避免不必要的数据共享风险。
最低0.47元/天 解锁文章
1407

被折叠的 条评论
为什么被折叠?



