NumPy-Arraykopie vs. Ansicht
- Vorherige Seite NumPy-Datentypen
- Nächste Seite NumPy-Array-Form
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)
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)
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)
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 base
wenn 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)
Kopie zurückgeben None
.
Ansicht zur Rückkehr zum ursprünglichen Array.
- Vorherige Seite NumPy-Datentypen
- Nächste Seite NumPy-Array-Form