numpy.ndarray.copy
метод
- ndarray.copy(order='C')
-
Возвращает копию массива.
- Параметры:
-
- order{‘C’, ‘F’, ‘A’, ‘K’}, необязательный
-
Управляет расположением памяти копии. ‘C’ означает порядок C, ‘F’ означает порядок F, ‘A’ означает ‘F’, если
aявляется Фортрановским, иначе ‘C’. ‘K’ означает соответствие расположениюaнастолько точно, насколько это возможно. (Обратите внимание, что эта функция иnumpy.copyочень похожи, но имеют разные значения по умолчанию для своих аргументов order=, и эта функция всегда пропускает подклассы.)
См. также
numpy.copy-
Аналогичная функция с другим поведением по умолчанию
numpy.copyto
Примечания
Эта функция является предпочтительным методом для создания копии массива. Функция
numpy.copyаналогична, но по умолчанию использует порядок ‘K’ и по умолчанию не пропускает подклассы.Примеры
>>> 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)
© 2005–2024 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/2.0/reference/generated/numpy.ndarray.copy.html