TUTORIAL

NumPy Tutorial - NumPy Array anhängen

Dieser Abschnitt führt ein, wie man Daten an ein Numpy-Array anhängt.

Auf dieser Seite

NumPy stellt numpy.append bereit, um Werte an ein Array anzuhängen. Dabei handelt es sich um eine Funktion, nicht um eine ndarray.append-Methode. Sie gibt ein neues Array zurück, statt das Eingabearray direkt zu verändern. Python-Listen haben Methoden mit ähnlichen Namen: list.append fügt ein Objekt als einzelnes Element hinzu, während list.extend jedes Element eines iterierbaren Objekts hinzufügt. Die NumPy-Funktion richtet sich dagegen nach den Regeln für Array-Formen und Achsen. Die Listenmethoden dienen daher nur zum Vergleich und sind nicht austauschbar.

Was numpy.append macht

numpy.append verbindet ein Eingabearray mit weiteren Werten und gibt das kombinierte Ergebnis zurück. Standardmäßig flacht die Funktion beide Eingaben zuerst ab. Das Ergebnis ist daher eindimensional, auch wenn die ursprünglichen Arrays mehrere Dimensionen hatten. Wird eine Achse angegeben, bleiben die übrigen Dimensionen erhalten und die Arrays werden entlang dieser Achse verbunden. Verwende den Standardwert, wenn du eine flache Folge möchtest; gib eine Achse an, wenn die Anordnung in Zeilen und Spalten wichtig ist.

Da die Funktion ein neues Array zurückgibt, musst du ihren Rückgabewert verwenden, wenn du das kombinierte Ergebnis benötigst. Weise ihn beispielsweise einer neuen Variablen zu oder speichere ihn wieder in der ursprünglichen Variablen. Ohne Verwendung des Rückgabewerts wird arr durch den Funktionsaufruf nicht aktualisiert.

Syntax und Parameter

Die Signatur lautet numpy.append(arr, values, axis=None) (nach dem Import von NumPy als np wird die Funktion üblicherweise als np.append aufgerufen). arr ist die arrayartige Eingabe, die erweitert werden soll. values enthält die hinzuzufügenden Daten und kann ein Skalar oder ein arrayartiges Objekt sein. Mit axis wird die Achse für die Verbindung ausgewählt. Der Standardwert None flacht beide Eingaben vor dem Verbinden ab. Die Funktion gibt ein Array zurück.

Parameter Bedeutung
arr Das arrayartige Eingabeobjekt.
values Der hinzuzufügende Skalar oder die hinzuzufügenden arrayartigen Werte.
axis Die Achse für die Verbindung oder None, um die Eingaben zuerst abzuflachen.

Führe dieses Beispiel aus:

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

import numpy as np

numbers = np.array([1, 2, 3])
combined = np.append(numbers, [4, 5])
print(combined)
[1 2 3 4 5]

Ohne Angabe einer Achse anhängen

Wird axis ausgelassen oder auf None gesetzt, flacht NumPy arr und values vor dem Verbinden ab. Das Ergebnis ist unabhängig von den ursprünglichen Dimensionen der Eingaben eindimensional. So kann beispielsweise ein zweidimensionales Array mit einer Reihe von Werten verbunden werden, ohne die Anordnung in Zeilen und Spalten beizubehalten. Das ist praktisch, wenn eine flache Folge benötigt wird, fügt aber keine Zeile oder Spalte in die ursprüngliche Anordnung ein.

Wenn die Dimensionen des Arrays erhalten bleiben sollen, gib eine Achse an, statt dich auf den Standardwert zu verlassen. Durch das Abflachen können Eingaben mit unterschiedlichen Formen miteinander verwendet werden, weil ihre Dimensionen vor dem Zusammenfügen wegfallen.

Entlang einer Achse anhängen

Bei einem zweidimensionalen Array fügt axis=0 Zeilen und axis=1 Spalten hinzu. Die Formen der Eingaben müssen in jeder Dimension übereinstimmen, außer entlang der Achse, auf der sie verbunden werden. Beim Hinzufügen einer Zeile muss also ihre Spaltenzahl mit der des vorhandenen Arrays übereinstimmen; beim Hinzufügen einer Spalte muss die Zeilenzahl passen. Bei einer Abweichung wird ValueError ausgelöst, weil die Arrays nicht verbunden werden können, während die übrigen Dimensionen aufeinander abgestimmt bleiben.

Dieses Beispiel fügt eine Zeile hinzu:

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

import numpy as np

matrix = np.array([[1, 2], [3, 4]])
with_row = np.append(matrix, [[5, 6]], axis=0)
print(with_row)
[[1 2]
 [3 4]
 [5 6]]

Alle Dimensionen außer der mit axis angegebenen müssen übereinstimmen. Eine Zeile mit drei Spalten an eine Matrix mit zwei Spalten anzuhängen ist beispielsweise nicht möglich und löst ValueError aus:

import numpy as np

matrix = np.array([[1, 2], [3, 4]])
try:
    np.append(matrix, [[5, 6, 7]], axis=0)
except ValueError as error:
    print(type(error).__name__)

Stattdessen kannst du eine Spalte hinzufügen, indem du ein zweidimensionales Array übergibst, das für jede vorhandene Zeile eine Zeile und eine Spalte mit neuen Werten enthält. Führe dieses Beispiel aus:

import numpy as np

matrix = np.array([[1, 2], [3, 4]])
with_column = np.append(matrix, [[5], [6]], axis=1)
print(with_column)
[[1 2 5]
 [3 4 6]]

Das Ergebnis hat wie matrix zwei Zeilen und enthält die neuen Werte in einer dritten Spalte. Wenn die angehängte Eingabe die falsche Zeilenzahl hat, überprüfe vor dem nächsten Versuch die Dimensionen.