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