NumPy Deep Copy
-
NumPy Deep Copy с функцией
copy.deepcopy()
в Python - NumPy Deep Copy с пользовательским подходом в Python

В этом руководстве будут представлены методы глубокого копирования массива NumPy в Python.
NumPy Deep Copy с функцией copy.deepcopy()
в Python
У Python есть два типа копий: мелкая копия и глубокая копия. Неглубокая копия означает, что скопированный массив содержит только ссылку на исходный массив. Это означает, что любое изменение исходного массива будет отражено внутри скопированного массива. С другой стороны, глубокая копия означает копирование каждого элемента исходного массива в скопированный массив. В этом типе копирования каждому элементу внутри скопированного массива выделяется новая ячейка памяти. Это означает, что любое изменение в исходном массиве ничего не изменит внутри скопированного массива.
Функция deepcopy()
внутри модуля copy
используется для глубокого копирования списков, но она также отлично работает с массивами в Python. Функция copy.deepcopy()
принимает массив в качестве входного аргумента и возвращает глубокую копию массива. В следующем примере кода показано, как глубоко скопировать массив NumPy с помощью функции copy.deepcopy()
в Python.
import numpy as np
import copy
array = np.array([1,2,3,4])
array2 = copy.deepcopy(array)
array[0] = array[0] + 1
print(array)
print(array2)
Выход:
[2 2 3 4]
[1 2 3 4]
В приведенном выше коде мы глубоко скопировали массив NumPy array
внутри array2
с помощью функции copy.deepcopy()
. Затем мы изменили элементы внутри array
. Выходные данные показывают, что изменение значений внутри массива NumPy array
не влияет на массив NumPy array2
.
NumPy Deep Copy с пользовательским подходом в Python
Другой метод глубокого копирования массива NumPy - перебрать весь массив и скопировать каждый элемент внутри него. См. Следующий пример кода.
import numpy as np
array = np.array([1,2,3,4])
array2 = np.array([x for x in array])
array[1] = 1
print(array)
print(array2)
Выход:
[1 1 3 4]
[1 2 3 4]
В приведенном выше коде мы глубоко скопировали массив NumPy array
внутри массива NumPy array2
, перебирая каждый элемент внутри array
. Затем мы изменили элементы внутри array
. Выходные данные показывают, что изменение значений внутри массива NumPy array
не влияет на массив NumPy array2
.
Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.
LinkedIn