NumPy Deep Copy
-
NumPy Deep Copy con la funzione
copy.deepcopy()
in Python - NumPy Deep Copy con l’approccio definito dall’utente in Python
Questo tutorial introdurrà i metodi per copiare in profondità un array NumPy in Python.
NumPy Deep Copy con la funzione copy.deepcopy()
in Python
Python ha due tipi di copie, una copia superficiale e una copia profonda. Una copia superficiale significa che l’array copiato contiene solo un riferimento all’array originale. Significa che qualsiasi modifica nell’array originale si rifletterà all’interno dell’array copiato. D’altra parte, una copia profonda significa copiare ogni elemento dell’array originale nell’array copiato. In questo tipo di copia, a ciascun elemento all’interno dell’array copiato viene assegnata una nuova posizione di memoria. Ciò significa che qualsiasi modifica nell’array originale non cambierà nulla all’interno dell’array copiato.
La funzione deepcopy()
all’interno del modulo copy
è usata per copiare in profondità gli elenchi, ma funziona bene anche con gli array in Python. La funzione copy.deepcopy()
accetta l’array come argomento di input e restituisce una copia completa dell’array. Il seguente esempio di codice ci mostra come copiare in profondità un array NumPy con la funzione copy.deepcopy()
in 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)
Produzione:
[2 2 3 4]
[1 2 3 4]
Nel codice sopra, abbiamo copiato in profondità l’array NumPy array
all’interno di array2
con la funzione copy.deepcopy()
. Abbiamo quindi modificato gli elementi all’interno dell’array
. L’output mostra che la modifica dei valori all’interno dell’array NumPy array
non ha alcun effetto sull’array NumPy array2
.
NumPy Deep Copy con l’approccio definito dall’utente in Python
Un altro metodo per copiare in profondità un array NumPy è scorrere l’intero array e copiare ogni elemento al suo interno. Vedere il seguente esempio di codice.
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)
Produzione:
[1 1 3 4]
[1 2 3 4]
Nel codice sopra, abbiamo copiato in profondità l’array NumPy array
all’interno dell’array NumPy array2
iterando attraverso ogni elemento all’interno dell’array
. Abbiamo quindi modificato gli elementi all’interno dell’array
. L’output mostra che la modifica dei valori all’interno dell’array NumPy array
non ha alcun effetto sull’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