NumPy Deep Copy
-
NumPy Deep Copy com a função
copy.deepcopy()
em Python - NumPy Deep Copy com a abordagem definida pelo usuário em Python
Este tutorial irá apresentar os métodos para copiar profundamente um array NumPy em Python.
NumPy Deep Copy com a função copy.deepcopy()
em Python
Python tem dois tipos de cópias, uma cópia superficial e uma cópia profunda. Uma cópia superficial significa que a matriz copiada contém apenas uma referência à matriz original. Isso significa que qualquer alteração na matriz original será refletida dentro do array copiada. Por outro lado, uma cópia profunda significa copiar cada elemento do array original para o array copiado. Nesse tipo de cópia, um novo local de memória é alocado para cada elemento dentro do array copiado. Isso significa que qualquer mudança no array original não mudará nada dentro do array copiado.
A função deepcopy()
dentro do módulo copy
é usada para listas de cópias profundas, mas também funciona bem com arrays em Python. A função copy.deepcopy()
leva a matriz como um argumento de entrada e retorna uma cópia profunda do array. O exemplo de código a seguir nos mostra como copiar profundamente um array NumPy com a função copy.deepcopy()
em 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)
Resultado:
[2 2 3 4]
[1 2 3 4]
No código acima, copiamos profundamente o array NumPy array
dentro do array2
com a função copy.deepcopy()
. Em seguida, modificamos os elementos dentro do array
. A saída mostra que alterar os valores dentro do array NumPy array
não tem efeito no array NumPy array2
.
NumPy Deep Copy com a abordagem definida pelo usuário em Python
Outro método de copiar profundamente um array NumPy é iterar por todo o array e copiar cada elemento dentro dele. Veja o seguinte exemplo de código.
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)
Resultado:
[1 1 3 4]
[1 2 3 4]
No código acima, copiamos profundamente o array NumPy array
dentro do array NumPy array2
iterando através de cada elemento dentro do array
. Em seguida, modificamos os elementos dentro do array
. A saída mostra que alterar os valores dentro do array NumPy array
não tem efeito no 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