numpy
拷贝
一些概念
- 切片索引(slice): 冒号形式的索引
0:2
,::2
,1
(特例),都可以被视为切片索引 - 索引数组:以数据形式索引,如
[0,1]
,np.array([0,1])
,都可以作为索引数组 - 不拷贝:不会分配新的内存
- 浅拷贝:会分配新的内存,但不会递归拷贝(
numpy
中与不拷贝可不加以区分) - 深拷贝:会分配新的内存,会递归拷贝
numpy
视图(view):不会分配新的内存
结论
- 直接变量间赋值
=
和is
都是 浅拷贝,加.copy()
强制 深拷贝 - 切片索引(slice index)相当于视图(view),浅拷贝(
list
同样是 浅拷贝) - 采用索引数组索引是 深拷贝
例子
- 本来是想整理些例子,但排列组合起来太多了,略去吧 (ノ_ _)ノ,理解概念比记忆好。
参考
- https://www.numpy.org.cn/user/basics/indexing.html#%E5%85%B6%E4%BB%96%E7%B4%A2%E5%BC%95%E9%80%89%E9%A1%B9
- https://blog.csdn.net/weixin_43590796/article/details/107479765
- https://blog.csdn.net/qq_52096207/article/details/123118661