numpy.copy
numpy.copy(a, order='K')
Функция copy() возвращает массив-копию указанного объекта.
-
- a - некоторая последовательность
- Входные данные которые могут быть преобразованы в массив: списки и кортежи, списки списков и кортежи кортежей, списки кортежей и кортежи списков, а так же кортежи или списки других массивов NumPy.
- order - 'C', 'F', 'A' или 'K' (необязательный)
- Этот параметр определяет в каком порядке копия массива должна храниться в памяти: строчном C-стиле или столбчатом стиле Fortran. Флаг 'A' установит макет памяти выходного массива в 'F' если массив
a
является смежным со столбчатым стилем Fortran, в противном случае макет памяти будет установлен в 'C'. Флаг 'K', используемый по умолчанию, устанавливает макет памяти выходного массива аналогичный массивуa
.
-
- результат - массив NumPy
- Интерпретирует входные данные
a
как массив NumPy и делает их полную копию
Замечание
Функции 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])