numpy.char.chararray.copy#

方法

char.chararray.copy(order='C')#

傳回陣列的副本。

參數:
order{‘C’, ‘F’, ‘A’, ‘K’}, 選填

控制副本的記憶體佈局。‘C’ 代表 C-order,‘F’ 代表 F-order,‘A’ 代表如果 a 是 Fortran 連續的則為 ‘F’,否則為 ‘C’。‘K’ 代表盡可能匹配 a 的佈局。(請注意,此函數和 numpy.copy 非常相似,但它們的 order= 參數的預設值不同,並且此函數始終傳遞子類別。)

另請參閱

numpy.copy

具有不同預設行為的相似函數

numpy.copyto

註解

此函數是建立陣列副本的建議方法。函數 numpy.copy 很相似,但它預設使用 order ‘K’,並且預設情況下不會傳遞子類別。

範例

>>> import numpy as np
>>> x = np.array([[1,2,3],[4,5,6]], order='F')
>>> y = x.copy()
>>> x.fill(0)
>>> x
array([[0, 0, 0],
       [0, 0, 0]])
>>> y
array([[1, 2, 3],
       [4, 5, 6]])
>>> y.flags['C_CONTIGUOUS']
True

對於包含 Python 物件的陣列(例如 dtype=object),副本是淺層副本。新陣列將包含相同的物件,如果該物件可以被修改(是可變的),則可能會導致意外。

>>> a = np.array([1, 'm', [2, 3, 4]], dtype=object)
>>> b = a.copy()
>>> b[2][0] = 10
>>> a
array([1, 'm', list([10, 3, 4])], dtype=object)

為了確保 object 陣列中的所有元素都被複製,請使用 copy.deepcopy

>>> import copy
>>> a = np.array([1, 'm', [2, 3, 4]], dtype=object)
>>> c = copy.deepcopy(a)
>>> c[2][0] = 10
>>> c
array([1, 'm', list([10, 3, 4])], dtype=object)
>>> a
array([1, 'm', list([2, 3, 4])], dtype=object)