numpy.copy#

numpy.copy(a, order='K', subok=False)[source]#

返回给定对象的数组副本。

参数:
aarray_like

输入数据。

order{‘C’, ‘F’, ‘A’, ‘K’}, 可选

控制副本的内存布局。‘C’ 表示 C 顺序,‘F’ 表示 Fortran 顺序,‘A’ 表示如果 a 是 Fortran 连续的则为 ‘F’,否则为 ‘C’。‘K’ 表示尽可能地匹配 a 的布局。(请注意,此函数和 ndarray.copy 非常相似,但其 order= 参数的默认值不同。)

subokbool, 可选

如果为 True,则子类将被传递,否则返回的数组将被强制为基类数组(默认为 False)。

版本 1.19.0 中的新功能。

返回值:
arrndarray

a 的数组解释。

另请参阅

ndarray.copy

创建数组副本的首选方法

注释

这等效于

>>> np.array(a, copy=True)  

对数据进行的复制是浅复制,即对于具有对象数据类型的数组,新数组将指向相同的对象。请参阅 ndarray.copy 中的示例。

示例

>>> import numpy as np

创建一个数组 x,带有引用 y 和副本 z

>>> x = np.array([1, 2, 3])
>>> y = x
>>> z = np.copy(x)

请注意,当我们修改 x 时,y 会发生变化,但 z 不会。

>>> x[0] = 10
>>> x[0] == y[0]
True
>>> x[0] == z[0]
False

请注意,np.copy 清除了先前设置的 WRITEABLE=False 标志。

>>> a = np.array([1, 2, 3])
>>> a.flags["WRITEABLE"] = False
>>> b = np.copy(a)
>>> b.flags["WRITEABLE"]
True
>>> b[0] = 3
>>> b
array([3, 2, 3])