Numpy库-4

50 阅读1分钟

1. 复制和查看

在操作和处理数组时,其数据有时会被复制到一个新的数组中,有时则不会。

1.1 不复制

简单的赋值操作不会复制对象或其数据

image.png

Python 将可变对象作为引用传递,因此函数调用不会进行复制操作。

image.png

1.2 视图方法和浅拷贝

不同的数组对象可以共享相同的数据。view方法会创建一个新的数组对象,新数组和原数组共享数据。

image.png

1.3 深拷贝

copy方法会完整复制数组及其数据

image.png

有时,如果不再需要原始数组,那么copy操作就应当通过切片来实现。例如,假设变量 a 是一个巨大的中间结果,而最终结果 b 只包含 a 的一小部分内容,那么在构建 b 时应当使用切片来进行深复制。

image.png

如果使用 b = a[:100] 这种方式,而不是深拷贝,那么 a 就会被 b 引用,即便执行了 del a 这样的语句,a 也会保留在内存中。