NumPy Deep Copy

Muhammad Maisam Abbas 30 gennaio 2023
  1. NumPy Deep Copy con la funzione copy.deepcopy() in Python
  2. NumPy Deep Copy con l’approccio definito dall’utente in Python
NumPy Deep Copy

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.

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

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