NumPy 复制和视图
在执行函数时,其中一些函数会返回输入数组的副本,而其他一些函数会返回视图。当内容在另一个位置物理存储时,称为 复制 。另一方面,如果提供了相同内存内容的不同视图,我们称之为 视图 。
无复制
简单的赋值不会创建数组对象的副本。相反,它使用原始数组的相同id()来访问它。id()返回Python对象的通用标识符,类似于C中的指针。
此外,任何一方的更改都会反映在另一方上。例如,一个的形状改变,另一个的形状也会改变。
示例
它将产生以下输出-
查看或浅复制
NumPy有一个名为 ndarray.view() 的方法,它是一个查看原始数组相同数据的新数组对象。与之前的情况不同,新数组的维度的变化不会改变原始数组的维度。
示例
它会产生以下输出 −
数组的切片会创建一个视图。
示例
它将产生以下输出 −
深拷贝
ndarray.copy()函数创建一个深拷贝。它是数组和其数据的完全复制,并且不与原始数组共享。
示例
它将产生以下输出−