Aus dem Kurs: NumPy Grundkurs
Eine View erstellen – Tutorial zu Python
Aus dem Kurs: NumPy Grundkurs
Eine View erstellen
NumPy stellt Ihnen zur Erstellung von Kopien eine copy()-Methode bei Arrays zur Verfügung. Aber es gibt auch eine view()-Methode, und die wollen wir uns in diesem Video etwas anschauen. Wenn wir hier einfach statt copy() view() hinschreiben und von einem Array a eine View, eine andere Sicht, auf das Array erzeugen, dann schauen wir mal an, was passiert, wenn wir jetzt Änderungen am Original vornehmen. Und wenn Sie sich das anschauen, sehen Sie, dass eine Änderung am Original-Array auch eine Änderung in der View vornimmt und eine Änderung in der View auch eine Änderung im Original-Array. D.h., wir haben im Grunde eine flache Cookie. Was ist also der Sinn von view(), wenn wir hier ja eigentlich auch nur hinschreiben könnten "b = a", d.h. eine Referenzzuweisung machen? Eine View ermöglicht eine andere Sicht auf das gleiche Objekt, also auf das gleiche Array. Und das kann man z.B. hier deutlich machen. Ich habe hier ein Array und die Datentypen explizit auf jeweils int32 von NumPy festgelegt. Beim Erzeugen der View hingegen sage ich, dass das jeweils andere Datentypen sind, in dem Fall int16. Und wenn wir die Ausgabe betrachten, kann man bereits hier erkennen, dass diese Sicht über b auf eine andere Art erfolgt als die Sicht über a. Wir haben hier (1, 2) stehen, hier haben wir (1, 0), (2, 0) stehen. Das bedeutet natürlich, dass die ursprünglichen 32 Bit, die für die Zahl 1 bspw. hier oben in dem Array a reserviert werden, im Array b respektive dem Zeiger auf das Original anders betrachtet werden und nur 16 Bit für diesen Wert erst mal reserviert werden. Der Umgang mit Views ist nicht ganz trivial, weil Sie insbesondere bei der Festlegung der Datentypen aufpassen müssen, dass diese kompatibel sind – in Anführungszeichen –, aber grundsätzlich ermöglicht eine View, eine Sicht auf das gleiche Objekt unter gewissen anderen Voraussetzungen.
Inhalt
-
-
-
-
-
(Gesperrt)
Elemente einem Array hinzufügen6 Min. 35 Sek.
-
(Gesperrt)
Elemente aus einem Array entfernen3 Min. 33 Sek.
-
(Gesperrt)
Elemente in einem Array sortieren3 Min. 11 Sek.
-
(Gesperrt)
NumPy-Arrays kopieren1 Min. 47 Sek.
-
(Gesperrt)
Die Form von NumPy-Arrays ändern4 Min. 59 Sek.
-
(Gesperrt)
NumPy-Arrays indizieren3 Min. 48 Sek.
-
(Gesperrt)
NumPy-Arrays zerlegen3 Min. 42 Sek.
-
(Gesperrt)
Über Arrays iterieren3 Min. 14 Sek.
-
Eine View erstellen2 Min. 19 Sek.
-
(Gesperrt)
Transponieren und Umdrehen2 Min. 5 Sek.
-
(Gesperrt)
Automatische Umformung1 Min. 22 Sek.
-
(Gesperrt)
Challenge: Array manipulieren2 Min. 46 Sek.
-
(Gesperrt)
Solution: Array manipulieren3 Min. 35 Sek.
-
(Gesperrt)
-