numpy的copy & deep copy

这次写一下numpy的copy与deep copy

一、浅拷贝 copy

大家可能对copy和deep copy的概念不太了解,那就先对着下面例子看一下吧

首先还是import numpy
import numpy as np

定义数列a=[0, 1, 2, 3]
a = np.arange(4)

经过下列一系列操作后
b = a
c = a
d = b
a[0] = 11

此时a = [11, 1, 2, 3]

然后我们再用判断语句
b is a
发现结果为True

图为代码示例:

concept.png

二、深拷贝deep copy

在上述例子中,数列的复制可能并不是我们想象中的赋值,如果直接用赋值号进行赋值。
发现a 与 b并不是两个独立的数列,当我们改变a当中的数据时,b当中对应的数据也随之改变。
大家可以理解为我们用一般的赋值号对数列进行赋值的话,只是给了数列一个别名,并没有新建新的数列,只是不同指针指向了同一个instance

深拷贝的方法

b = a.copy() # deep copy

哈哈,这就是deep copy的方法啦

下面为演示图片:

从图中可以看出我们使用deep copy方法时只是将a的值copy到b,但并没有将两者关联起来

所以今后到我们只是将数列的值copy过来时,可以用到deep copy的方法
如果只想把量数列关联起来 就直接用a = b或 b = a就可以啦

谢谢大家, 这里是这次的分享,numpy的笔记到这一篇的话,基础的知识就总结的差不多了,如果有需要了解更多相关知识的话可以看看我之前的博文或关注我的博客,谢谢大家。
欢迎大家在下方评论与留言或者给出建议,如有错误请指出。希望这篇博文能帮助到刚学习这个的同学,也欢迎大家分享给需要的人。

猜你喜欢

转载自blog.csdn.net/c710473510/article/details/89416582