Spec-Zone.ru › NumPy 2.0

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API