numpy.ma.copy#
- ma.copy(self, *args, **params) a.copy(order='C') = <numpy.ma.core._frommethod object>#
傳回陣列的副本。
- 參數:
- order{‘C’, ‘F’, ‘A’, ‘K’},選用
控制副本的記憶體佈局。「C」表示 C 順序,「F」表示 F 順序,「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)