NumPy Deep Copy

Muhammad Maisam Abbas 30 Januar 2023
  1. NumPy Deep Copy mit der Funktion copy.deepcopy() in Python
  2. NumPy Deep Copy mit dem benutzerdefinierten Ansatz in Python
NumPy Deep Copy

In diesem Tutorial werden die Methoden zum tiefen Kopieren eines NumPy-Arrays in Python vorgestellt.

NumPy Deep Copy mit der Funktion copy.deepcopy() in Python

Python hat zwei Arten von Kopien, eine flache Kopie und eine tiefe Kopie. Eine flache Kopie bedeutet, dass das kopierte Array nur einen Verweis auf das ursprüngliche Array enthält. Dies bedeutet, dass jede Änderung im ursprünglichen Array innerhalb des kopierten Arrays widergespiegelt wird. Andererseits bedeutet eine tiefe Kopie, dass jedes Element des ursprünglichen Arrays in das kopierte Array kopiert wird. Bei dieser Art des Kopierens wird jedem Element innerhalb des kopierten Arrays ein neuer Speicherplatz zugewiesen. Dies bedeutet, dass jede Änderung im ursprünglichen Array nichts innerhalb des kopierten Arrays ändert.

Die deepcopy()-Funktion innerhalb des copy-Moduls wird verwendet, um Listen zu kopieren, funktioniert aber auch gut mit Arrays in Python. Die Funktion copy.deepcopy() nimmt das Array als Eingabeargument und gibt eine tiefe Kopie des Arrays zurück. Das folgende Codebeispiel zeigt uns, wie man ein NumPy-Array mit der Funktion copy.deepcopy() in Python tief kopiert.

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)

Ausgabe:

[2 2 3 4]
[1 2 3 4]

Im obigen Code haben wir das NumPy-Array array in das array2 mit der Funktion copy.deepcopy() tief kopiert. Wir haben dann die Elemente innerhalb des Arrays modifiziert. Die Ausgabe zeigt, dass das Ändern der Werte innerhalb des NumPy-Arrays array keine Auswirkung auf das NumPy-Array array2 hat.

NumPy Deep Copy mit dem benutzerdefinierten Ansatz in Python

Eine andere Methode zum tiefen Kopieren eines NumPy-Arrays besteht darin, das gesamte Array zu durchlaufen und jedes Element darin zu kopieren. Siehe das folgende Codebeispiel.

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)

Ausgabe:

[1 1 3 4]
[1 2 3 4]

Im obigen Code haben wir das NumPy-Array array tief in das NumPy-Array array2 kopiert, indem wir jedes Element innerhalb des Arrays durchlaufen haben. Wir haben dann die Elemente innerhalb des Arrays modifiziert. Die Ausgabe zeigt, dass das Ändern der Werte innerhalb des NumPy-Arrays array keine Auswirkung auf das NumPy-Array array2 hat.

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