发布时间:2022-05-09 09:38:37 人气:225 作者:多测师
视图(浅复制)只是原有数据的一个引用,通过该引用可访问、操作原有数据,如果我们对视图进行修改,它会影响原始数据,因为浅复制共享内存。
副本(深复制)是对数据的完整拷贝,如果我们对副本进行修改,它不会影响到原始数据,因为深复制不共享内存。
调用 ndarray 的 view() 方法会产生一个视图,下面通过示例来看一下。
import numpy as npa = np.
arange(6).reshape(2,3)
# 创建视图
b = a.view()
print('a的id:', id(a))
print('b的id:', id(b))
# 修改 b 的形状
b.shape = 3,2
print('a的形状:')
print(a)
print('b的形状:')
print(b)
print(a is b)
调用 ndarray 的 copy() 方法会产生一个副本,下面通过示例来看一下。
import numpy as npa = np.
arange(1, 6)
# 创建副本
b = a.copy()
print(a is b)
b[1] = 10
print(a[1])
print(b[1])
以上内容为大家介绍了python 副本与视图,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注多测师。https://www.e70w.com/xwzx/