Zum Inhalt springen

Was ist ein NumPy Array?

  • Python

Ein NumPy Array ist ein Datenobjekt aus der Python Bibliothek NumPy, das zur Speicherung von Objekten eines Datentyps verwendet wird. Da es deutlich näher am Speicher programmiert ist als vergleichbare Python Datenobjekte kann es Datenmengen effizienter abspeichern und somit auch schneller verarbeitet werden.

Was ist NumPy?

Python bietet eine Vielzahl von Datenstrukturen, die ohne zusätzliche Bibliotheken zur Speicherung von Daten genutzt werden können. Jedoch sind diese Strukturen, wie beispielsweise Python Listen, nur sehr schlecht für mathematische Operationen geeignet. Das elementweise Addieren von zwei Listen aus Zahlen kann bei großen Datenmengen schnell zu Lasten der Performance gehen.

Aus diesem Grund wurde NumPy entwickelt, da es die Möglichkeit bietet, numerische Operationen schnell und effizient durchzuführen. Wichtig sind dabei vor allem Berechnungen aus dem Bereich der Linearen Algebra, wie beispielsweise Matrizenmultiplikationen.

Wie definiert man ein NumPy Array?

Wie der Name bereits verrät ist das Array ein Bestandteil der Bibliothek NumPy. Somit muss man diese erst importieren, bevor man das Array nutzen kann. Dieses wird dann einfach erstellt, indem die Elemente in eckiger Klammer eingefügt werden. Hierbei spielt die Reihenfolge der Elemente eine Rolle:

NumPy Array

Welche Eigenschaften hat ein Array?

Das Array ist eine Sammlung von Elementen, die alle vom gleichen Datentypen sein müssen. Meistens werden darin Zahlen gespeichert, jedoch können auch genauso gut Strings abgelegt werden. Nur eine Mischung von verschiedenen Datentypen in einem Array ist nicht möglich.

Zur Beschreibung der Struktur von Arrays sind drei Eigenschaften essenziell, die oftmals verwechselt werden:

  • Zahl der Dimensionen: Die Dimension in einem Array gibt an, wie viele Indizes benötigt werden, um ein spezifisches Element des Arrays abfragen zu können. Jede der Dimensionen kann genutzt werden, um zusammenhängende Informationen zu speichern. Wenn man beispielsweise die Umsatzzahlen eines Unternehmens nach der Zeit analysieren will, kann man eine Dimension für die Umsätze an verschiedenen Tagen und eine andere Dimension für den Umsatz in einem Monat nutzen.
  • Shape: Die Shape gibt die Größe von allen Dimensionen an, die das Array enthält. Wenn man beispielsweise ein dreidimensionales Array hat, erhält man ein Tuple der Länge drei als Ergebnis zurück. Das erste Element des Tuples gibt die Anzahl der Elemente in der ersten Dimension an, das zweite die Anzahl der Elemente in der zweiten Dimension und so weiter.
  • Size: Die Größe des Arrays gibt schließlich an, wie viele Zahlen oder Elemente ingesamt in dem Array abgespeichert sind. Konkret ist das das Produkt aus den einzelnen Elementen, die von der Shape zurückgegeben wurden.

Wir definieren nun ein zweidimensionales NumPy Array, welches in beiden Dimensionen jeweils drei Elemente hat:

NumPy Array

Wie sind mehrdimensionale Arrays aufgebaut?

In der Anwendung reicht eine Dimension häufig nicht aus, um Sachverhalte komplett zu schreiben. Dabei bieten sich NumPy Arrays auch an, um mehrdimensionale Objekte zu speichern. Ein Beispiel hierfür ist etwa eine Tabelle, die aus zwei Dimensionen, nämlich den Reihen und den Spalten besteht. Diese lässt sich auch relativ einfach definieren, indem man die Reihen als Liste von Listen angibt:

NumPy Array

Analog dazu lassen sich auch weitere Dimensionen hinzufügen. Beispielsweise kann man ein Objekt erstellen, welches die Tabelle aus dem vorherigen Beispiel einfach zweimal enthält. Somit erhalten wir ein dreidimensionales Objekt:

NumPy Array

Wie erhält man einzelne Elemente aus einem Array?

Da NumPy Arrays im Aufbau sehr ähnlich zu den Python Lists sind, ist es nicht überraschend, dass auch Arrays mit sogenannten Indizes arbeiten, um auf Elemente zuzugreifen. Das bedeutet, dass man einzelne Elemente über deren Position abfragen kann. Dabei beginnt die zählweise bei 0 und geht dann aufwärts.

Genauso kann man auch mit negativen Indizes arbeiten und somit das Array von hinten durchlaufen. Im Unterschied zu den positiven Indizes wird dabei jedoch bei -1 angefangen, welches für das letzte Element des Arrays steht. Die -2 ist dann entsprechend der Index des vorletzten Elements des Arrays:

NumPy Array

In mehrdimensionalen Arrays reicht ein einzelner Index nicht aus, um einzelne Elemente abfragen zu können. Im Allgemeinen gilt, dass man für jede Dimensionen einen Index angeben muss, um ein Elemente abfragen zu können und nicht eine Liste von Elementen zu erhalten. In unserem mehrdimensionalen Array fragen wir aus der ersten Dimension das zweite Element ab:

NumPy Array

Was ist der Unterschied zwischen einer Python Liste und einem NumPy Array?

Zu diesem Zeitpunkt im Artikel könnte man meinen, dass NumPy Arrays einfach eine alternative zu den Python Lists darstellen, die sogar noch den Nachteil besitzen, dass sie lediglich Daten eines einzelnen Datentyps speichern können, wohingegen Listen auch eine Mischung aus Strings und Zahlen speichern. Jedoch muss es auch Gründe geben, warum sich die Entwickler von NumPy dazu entschieden haben mit dem Array ein neues Datenelement einzuführen.

Der Hauptvorteil von NumPy Arrays gegenüber Python Lists ist die Speichereffizienz und damit verbunden die Schnelligkeit bei Lese- und Schreibvorgängen. In vielen Anwendungen mag dies nicht wirklich von Bedeutung sein, jedoch kann es bei Millionen oder sogar Milliarden Elementen eine deutliche Zeitersparnis bieten. Somit wird in komplexen Anwendungen häufig auf Arrays zurückgegriffen, um performante Systeme zu entwickeln.

Das solltest Du mitnehmen

  • Das NumPy Array ist ein Datenelement aus der NumPy Bibliothek, das mehrdimensionale Anordnungen von Informationen speichern kann.
  • Im Vergleich zu einer Python Liste kann es nur Elemente desselben Datentyps abspeichern. Dafür ist es jedoch deutlich speichereffizienter und somit leistungsstärker.
  • Die grundlegenden Eigenschaften von NumPy Arrays sind die Zahl der Dimensionen, die Shape und die Size.

Vielen Dank an Deepnote für das Sponsoring dieses Artikels! Deepnote bietet mir die Möglichkeit, Python-Code einfach und schnell auf dieser Website einzubetten und auch die zugehörigen Notebooks in der Cloud zu hosten.

Andere Beiträge zum Thema NumPy Array

Die Dokumentation eines Arrays findest Du hier.

close
Das Logo zeigt einen weißen Hintergrund den Namen "Data Basecamp" mit blauer Schrift. Im rechten unteren Eck wird eine Bergsilhouette in Blau gezeigt.

Verpass keine neuen Beiträge!

Wir versenden keinen Spam! Lies die Details gerne in unserer Datenschutzrichtlinie nach.

Cookie Consent mit Real Cookie Banner