HOWTO · NumPy

NumPy Array-Länge abrufen

Mit `len(array)` erhältst du die Länge der ersten Achse eines NumPy-Arrays, mit `array.size` die Gesamtzahl seiner Elemente und mit `array.shape` die Länge jeder Dimension.

Auf dieser Seite

Mit len(array) erhältst du die Länge der ersten Achse eines NumPy-Arrays, mit array.size die Gesamtzahl seiner Elemente und mit array.shape die Länge jeder Dimension. Die Werte beantworten unterschiedliche Fragen: Bei einem zweidimensionalen Array gibt die Länge die Anzahl der Zeilen an, size zählt alle Einträge und shape beschreibt Zeilen und Spalten.

Länge und Gesamtzahl der Elemente eines NumPy-Arrays ermitteln

Pythons eingebaute Funktion len() gibt die Länge der ersten Achse eines Arrays mit mindestens einer Dimension zurück. Bei einem eindimensionalen Array entspricht das auch der Gesamtzahl der Elemente. Bei einem mehrdimensionalen Array zählt len() die äußersten Gruppen, nicht jeden einzelnen Eintrag.

Das Attribut ndarray.size gibt die Gesamtzahl der Elemente über alle Achsen hinweg zurück. Verwende es als array.size, ohne Klammern. Es funktioniert mit ein- und mehrdimensionalen Arrays; zum Zählen musst du das Array nicht abflachen.

Dieses eigenständige Beispiel setzt NumPy voraus.

Der Code und die angezeigten Bezeichnungen oder Ausgaben in diesem Abschnitt bleiben auf Englisch.

import numpy as np

vector = np.array([1, 2, 3, 4, 5, 6])
array = np.array([[1, 2, 3], [4, 5, 6]])

print("Vector length:", len(vector))
print("Vector element count:", vector.size)
print("Array length:", len(array))
print("Array element count:", array.size)
Vector length: 6
Vector element count: 6
Array length: 2
Array element count: 6

Der Vektor hat sechs Einträge entlang seiner einzigen Achse. Deshalb stimmen seine Länge und die Gesamtzahl der Elemente überein. Das zweidimensionale Array hat zwei Zeilen mit jeweils drei Einträgen. Seine Länge entlang der ersten Achse gibt daher die Zeilenzahl an, während die Gesamtzahl die Einträge beider Zeilen umfasst.

NumPy stellt außerdem die Funktion np.size(array) bereit. Wenn keine Achse angegeben ist, gibt sie die Gesamtzahl der Elemente zurück. Anders als das Attribut akzeptiert die Funktion eine Achse: np.size(array, axis=1) liefert die Länge der zweiten Achse. Verwende das Attribut für die Gesamtzahl und gib eine Achse an, wenn du eine bestimmte Dimension brauchst. Keine der beiden Varianten zählt nur unterschiedliche oder von null verschiedene Werte.

Dimensionen eines NumPy-Arrays untersuchen

Das Attribut ndarray.shape gibt ein Tupel mit der Länge jeder Achse zurück. Verwende es als array.shape, ohne Klammern. Die entsprechende Funktion lautet np.shape(array); auch sie gibt die Form und keine einzelne Elementzahl zurück.

Für das zweidimensionale Array von oben lautet die Form (2, 3): zwei Zeilen und drei Spalten. Mit array.shape[0] erhältst du die Zeilenzahl und mit array.shape[1] die Spaltenzahl. Entpacke die Form nur mit rows, columns = array.shape, wenn das Array genau zwei Dimensionen hat.

Bei einem eindimensionalen Array mit sechs Elementen ist die Form (6,), also ein Tupel mit einem Eintrag und nicht die ganze Zahl 6. Eine Form wie (2, 3, 4) beschreibt drei Achsen. Multipliziere alle Achsenlängen, um die Gesamtzahl der Elemente zu erhalten; nur die ersten beiden Werte zu multiplizieren, funktioniert nicht allgemein für Arrays mit mehr Dimensionen. Wenn du lediglich die Gesamtzahl brauchst, verwende array.size.

Die Anzahl der Einträge im Form-Tupel entspricht der Anzahl der Dimensionen. Sie ist auch über array.ndim verfügbar. Ein skalares Array wie np.array(7) hat die Form () und ein Element, aber keine erste Achse; daher ist len() dafür nicht definiert. Wenn sich ein unbekanntes Array nicht wie eine Tabelle verhält, prüfe seine Form, bevor du Dimensionen indizierst oder entpackst.