NumPy-Arraykopie vs. Ansicht

Unterschied zwischen Kopie und Ansicht

Der Hauptunterschied zwischen Kopie und Arrayansicht liegt darin, dass die Kopie ein neues Array ist, während die Ansicht nur eine Ansicht des Originalarrays ist.

Die Kopie besitzt Daten, und jede Änderung an der Kopie beeinflusst nicht das Originalarray, und jede Änderung am Originalarray beeinflusst nicht die Kopie.

Die Ansicht besitzt keine Daten, jede Änderung an der Ansicht beeinflusst den ursprünglichen Array, und jede Änderung am ursprünglichen Array beeinflusst die Ansicht.

Kopie:

Beispiel

Mache eine Kopie, ändere den ursprünglichen Array und zeige zwei Arrays an:

import numpy as np
arr = np.array([1, 2, 3, 4, 5])
x = arr.copy()
arr[0] = 61
print(arr) 
print(x)

Führe Beispiel aus

Die Kopie sollte nicht durch die Änderungen am ursprünglichen Array beeinflusst werden.

Ansicht:

Beispiel

Erstelle eine Ansicht, ändere den ursprünglichen Array und zeige zwei Arrays an:

import numpy as np
arr = np.array([1, 2, 3, 4, 5])
x = arr.view()
arr[0] = 61
print(arr) 
print(x)

Führe Beispiel aus

Die Ansicht sollte durch die Änderungen am ursprünglichen Array beeinflusst werden.

Änderungen in der Ansicht vornehmen:

Beispiel

Erstelle eine Ansicht, ändere die Ansicht und zeige zwei Arrays an:

import numpy as np
arr = np.array([1, 2, 3, 4, 5])
x = arr.view()
x[0] = 31
print(arr) 
print(x)

Führe Beispiel aus

Der ursprüngliche Array sollte durch die Änderungen am View beeinflusst werden.

Überprüfe, ob der Array Daten hat

Wie oben erwähnt, hat die Kopie Daten, während die Ansicht keine Daten hat, aber wie überprüfen wir das?

Jeder NumPy-Array hat eine Eigenschaft basewenn der Array Daten hat, gibt die Eigenschaft base zurück None.

Sonst,base Die Eigenschaft wird auf den ursprünglichen Objekt verweisen.

Beispiel

Drucke den Wert der Eigenschaft base aus, um zu überprüfen, ob der Array eigene Daten hat:

import numpy as np
arr = np.array([1, 2, 3, 4, 5])
x = arr.copy()
y = arr.view()
print(x.base)
print(y.base)

Führe Beispiel aus

Kopie zurückgeben None.

Ansicht zur Rückkehr zum ursprünglichen Array.