type
status
date
slug
summary
tags
category
icon
password
Property
在数组操作中分成三种拷贝:
- 不拷贝:直接赋值,那么栈区没有拷贝,只是用同一个栈区定义了不同的名称
- 浅拷贝:只拷贝栈区,栈区指定的堆区并没有拷贝,View(视图)
- 深拷贝:栈区和堆区都拷贝了,将之前数据完完整整的拷贝一份放到另外一块内存空间中,这样就是两个完全不同的值了
视图一般发生在:
- numpy 的切片操作返回原数据的视图
- 调用 ndarray 的
view()
函数产生一个视图
副本一般发生在:
- Python 序列的切片操作,调用
deepCopy()
函数。
- 调用 ndarray 的
copy()
函数产生一个副本
flatten
和ravel
就是这种情况,ravel
返回的就是View,而flatten
返回的就是深拷贝