numpy.copy

numpy.copy(a, order='K')

Функция numpy.copy() возвращает массив-копию указанного объекта.

Параметры:
a - некоторая последовательность
Входные данные которые могут быть преобразованы в массив: списки и кортежи, списки списков и кортежи кортежей, списки кортежей и кортежи списков, а так же кортежи или списки других массивов NumPy.
order - 'C', 'F', 'A' или 'K' (необязательный)
Этот параметр определяет в каком порядке копия массива должна храниться в памяти: строчном C-стиле или столбчатом стиле Fortran. Флаг 'A' установит макет памяти выходного массива в 'F' если массив a является смежным со столбчатым стилем Fortran, в противном случае макет памяти будет установлен в 'C'. Флаг 'K', используемый по умолчанию, устанавливает макет памяти выходного массива аналогичный массиву a.
Возвращает:
результат - массив NumPy
Интерпретирует входные данные a как массив NumPy и делает их полную копию
Смотрите так же: array, copyto

Замечание

Функции numpy.copy(a, order='K') и ndarray.copy(order='C') очень похожи, но имеют разные, установленные по умолчанию, параметры order. Функция numpy.copy(a, order='K') так же эквивалентна np.array(a, copy=True).

Примеры

>>> import numpy as np
>>> 
>>> a = np.array([1, 2, 3, 4, 5])
>>> 
>>> b = a    #  'b' - это указатель на данные из 'a'
>>> 
>>> a
array([1, 2, 3, 4, 5])
>>> b
array([1, 2, 3, 4, 5])
>>> 
>>> b is a    #  Это один и тот же объект
True
>>>
>>> a[0] = 111     #  Изменения в 'a'
>>> a
array([111,   2,   3,   4,   5])
>>>
>>> b    #  Повлекут изменения в 'b'
array([111,   2,   3,   4,   5])
>>> 
>>> c = np.copy(a)    #  'c' - это копия 'a'
>>> 
>>> a
array([111,   2,   3,   4,   5])
>>> c
array([111,   2,   3,   4,   5])
>>> 
>>> c is a    #  Это два разных объекта
False
>>> 
>>> a[0] = 999     #  Изменения в 'a'
>>> a
array([999,   2,   3,   4,   5])
>>>
>>> c     #  Никак не отразятся в 'с'
array([111,   2,   3,   4,   5])