HOWTO · NumPy

Zeile zur Matrix in NumPy hinzufügen

Dieses Tutorial zeigt, wie Sie einer Matrix in numpy eine Zeile hinzufügen.

Auf dieser Seite

Eine NumPy-Matrix ist ein zweidimensionales Array. Um eine Zeile hinzuzufügen, gib für jede Spalte einen Wert an und füge die Zeile entlang der Achse 0 hinzu. Verwende numpy.vstack() für ein direktes vertikales Stapeln. numpy.append() oder numpy.concatenate() eignen sich, wenn ihr Verhalten beim Kombinieren von Arrays besser zu deinem Code passt. Diese Operationen geben ein neues Array zurück. Weise das Ergebnis also einer Variablen zu, wenn du es behalten möchtest.

Die Beispiele verwenden eine Matrix mit drei Spalten und fügen [7, 8, 9] hinzu. Jedes Beispiel gibt das resultierende Array aus, damit du die hinzugefügte Zeile sehen kannst.

Eine Zeile mit numpy.vstack() hinzufügen

numpy.vstack() stapelt Arrays vertikal. Die neue Zeile kann als eindimensionales Array übergeben werden. Die Methode gibt ein neues Array zurück, in dem die Zeile am Ende steht.

Führe dieses Beispiel aus:

import numpy as np

matrix = np.array([[1, 2, 3],
                   [4, 5, 6]])
new_row = np.array([7, 8, 9])

result = np.vstack((matrix, new_row))
print(result)

Die ursprüngliche matrix bleibt unverändert; result enthält die hinzugefügte Zeile. Die Zeile muss drei Werte enthalten, damit sie zur Spaltenanzahl der Matrix passt. Wenn du mehrere Zeilen hinzufügen möchtest, übergib numpy.vstack() ein zweidimensionales Array mit diesen Zeilen.

Eine Zeile mit numpy.append() hinzufügen

Setze bei numpy.append() axis=0, um entlang der Zeilendimension anzuhängen. In diesem Beispiel ist die neue Zeile zweidimensional und hat die Form (1, 3). Damit passt sie zu den zwei Dimensionen und den drei Spalten der Matrix.

import numpy as np

matrix = np.array([[1, 2, 3],
                   [4, 5, 6]])
new_row = np.array([[7, 8, 9]])

result = np.append(matrix, new_row, axis=0)
print(result)

numpy.append() gibt ein neues Array zurück und verändert matrix nicht direkt. Weise den Rückgabewert wie oben einer Variablen zu, um das angehängte Array zu verwenden. Bei axis=0 müssen die Arrays dieselbe Spaltenanzahl haben. Mit einer passenden zweidimensionalen Form lassen sich auch mehrere Zeilen auf einmal anhängen. Wenn du wiederholt Zeilen an ein großes Array anfügst, kannst du sie stattdessen sammeln und anschließend gemeinsam kombinieren, da jeder Aufruf von append ein Ergebnisarray erstellt.

Zeilen mit numpy.concatenate() und numpy.r_ kombinieren

numpy.concatenate() verbindet Arrays entlang einer vorhandenen Achse. Verwende axis=0, um Zeilen hinzuzufügen, und achte darauf, dass alle Eingaben dieselbe Spaltenanzahl haben. Die allgemeine Operation zum Kombinieren von Arrays funktioniert auch mit mehr als zwei kompatiblen Arrays.

import numpy as np

matrix = np.array([[1, 2, 3],
                   [4, 5, 6]])
new_row = np.array([[7, 8, 9]])

result = np.concatenate((matrix, new_row), axis=0)
print(result)

numpy.r_ ist ein spezielles Indexierungsobjekt und kein Funktionsaufruf. Für diesen Fall ermöglicht es eine kompakte zeilenweise Kombination:

import numpy as np

matrix = np.array([[1, 2, 3],
                   [4, 5, 6]])
new_row = np.array([[7, 8, 9]])

result = np.r_[matrix, new_row]
print(result)

Wähle numpy.vstack(), wenn vertikales Stapeln die Absicht am klarsten ausdrückt. Verwende numpy.concatenate(), wenn du die Achse ausdrücklich angeben oder eine Folge von Arrays kombinieren möchtest. numpy.r_ ist eine kompakte Alternative für einfache Verkettungen.

Eine Zeile mit numpy.insert() an einer bestimmten Position einfügen

Verwende numpy.insert(), wenn die neue Zeile zwischen vorhandenen Zeilen stehen soll. Das Argument obj gibt die Einfügeposition an: Der Index 1 fügt die Zeile vor der bisherigen zweiten Zeile ein. Setze axis=0, damit NumPy entlang der Zeilendimension einfügt.

import numpy as np

matrix = np.array([[1, 2, 3],
                   [4, 5, 6]])
new_row = [7, 8, 9]

result = np.insert(matrix, 1, new_row, axis=0)
print(result)

Um eine Zeile nach der letzten Zeile einzufügen, verwende die aktuelle Zeilenanzahl als Position. Bei einem zweidimensionalen Array ist .shape ein Attribut, dessen erster Wert die Anzahl der Zeilen angibt:

import numpy as np

matrix = np.array([[1, 2, 3],
                   [4, 5, 6]])
new_row = [7, 8, 9]

position = matrix.shape[0]
result = np.insert(matrix, position, new_row, axis=0)
print(result)

Wie die anderen Methoden gibt auch numpy.insert() ein neues Array zurück. Behalte das Ergebnis oder weise es wieder matrix zu; das ursprüngliche Array wird nicht verändert. Bei allen vier Methoden muss die hinzugefügte Zeile dieselbe Spaltenanzahl wie die vorhandenen Zeilen haben.