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])