HOWTO · Python
So hängen Sie ein 2D-Array in Python an
Erfahren Sie, wie Sie in Python mit nativen Listen und NumPy Werte an ein 2D-Array anhängen. Dieser Leitfaden behandelt Methoden wie append(), extend(), numpy.append() und mehr, mit Beispielen für Zeilen, Spalten und dynamische Daten. Perfekt für Datenmanipulation und numerisches Rechnen!
Auf dieser Seite
Das Anhängen von Werten an ein 2D-Array in Python ist eine häufige Operation in Datenmanipulation, numerischem Rechnen und Data-Science-Anwendungen. Ob Sie mit nativen Python-Listen arbeiten oder NumPy für Effizienz verwenden: Es gibt mehrere Methoden, um Zeilen, Spalten oder einzelne Werte an ein 2D-Array anzuhängen. Dieser Leitfaden erkundet verschiedene Techniken, ihre Vorteile und Anwendungsfälle.
Verschachtelte Listen verwenden (Python-Listen)
Die eingebauten Listen von Python können 2D-Arrays als Listen von Listen darstellen. Die einfachste Möglichkeit, Werte anzuhängen, ist die Verwendung der Methode append().
Eine neue Zeile anhängen
array = [[1, 2, 3], [4, 5, 6]]
array.append([7, 8, 9])
print(array)
Ausgabe:
[[1, 2, 3],
[4, 5, 6],
[7, 8, 9]]
Diese Methode fügt der bestehenden Liste eine völlig neue Zeile hinzu. Die Methode append() ist nützlich, wenn Sie eine 2D-Liste dynamisch erweitern möchten, indem Sie im Laufe der Zeit weitere Daten hinzufügen. Beachten Sie jedoch, dass alle Zeilen für die Verarbeitung strukturierter Daten möglicherweise dieselbe Länge haben müssen.
Einen Wert an eine bestehende Zeile anhängen
array[0].append(10)
print(array)
Ausgabe:
[[1, 2, 3, 10],
[4, 5, 6],
[7, 8, 9]]
Diese Methode verändert eine bestimmte Zeile, indem sie ein neues Element anhängt. Anders als das Hinzufügen einer neuen Zeile betrifft diese Operation nur die angegebene Zeile, was zu einer unregelmäßigen Spaltenstruktur führen kann, wenn sie nicht richtig verwaltet wird.
List Comprehension verwenden
List Comprehensions bieten eine elegante Möglichkeit, Werte über alle Zeilen in einer 2D-Liste anzuhängen.
array = [[1, 2], [3, 4]]
array = [row + [5] for row in array]
print(array)
Ausgabe:
[[1, 2, 5],
[3, 4, 5]]
Diese Methode fügt jeder Zeile effizient eine neue Spalte hinzu. Indem sie über jede Zeile iteriert und einen Wert anhängt, stellt die List Comprehension sicher, dass die neue Spalte einheitlich über alle Zeilen hinzugefügt wird.
NumPy-Arrays verwenden
NumPy bietet leistungsstarke Methoden, um Werte effizient zu handhaben und an 2D-Arrays anzuhängen. Beim Umgang mit großen Datensätzen mit vielen leeren Werten kann die Verwendung einer dünn besetzten Matrix den Speicherverbrauch jedoch erheblich reduzieren. Erfahren Sie mehr über [dünn besetzte Matrizen in Python]({{relref “/HowTo/Python/sparse matrix in python.en.md”}}) und wie sie den Speicher optimieren.
numpy.append() verwenden
import numpy as np
array = np.array([[1, 2], [3, 4]])
array = np.append(array, [[5, 6]], axis=0)
print(array)
Ausgabe:
[[1 2]
[3 4]
[5 6]]
Diese Methode hängt eine neue Zeile an ein NumPy-Array an. Die Funktion numpy.append() ist beim Umgang mit großen Datensätzen nützlich, da sie im Vergleich zu nativen Python-Listen eine effiziente Speicherverwaltung gewährleistet.
Um eine neue Spalte anzuhängen:
array = np.append(array, [[7], [8], [9]], axis=1)
print(array)
Ausgabe:
[[1 2 7]
[3 4 8]
[5 6 9]]
Nach dem Anhängen von Werten müssen Sie das veränderte Array möglicherweise für die spätere Verwendung in einer Datei speichern. Details zum effizienten Speichern von NumPy-Arrays finden Sie in unserem Leitfaden zum [Schreiben von Arrays in eine Textdatei]({{relref “/HowTo/Python/write array to a textfile.en.md”}}).
Wenn beim Verändern von NumPy-Arrays Indexfehler auftreten, lesen Sie unseren Leitfaden zum Beheben von ‘Too Many Indices for Array’-Fehlern, um häufige Fehler zu beheben.
numpy.hstack() und numpy.vstack() verwenden
Die NumPy-Funktionen hstack() und vstack() sind darauf ausgelegt, Spalten und Zeilen effizient anzuhängen.
hstack() verwenden, um eine Spalte anzuhängen
import numpy as np
array = np.array([[1, 2], [3, 4]])
new_column = np.array([[5], [6]])
result = np.hstack((array, new_column))
print(result)
Ausgabe:
[[1 2 5]
[3 4 6]]
vstack() verwenden, um eine Zeile anzuhängen
new_row = np.array([[5, 6]])
result = np.vstack((array, new_row))
print(result)
Ausgabe:
[[1 2]
[3 4]
[5 6]]
Diese Methoden sind effizient und werden empfohlen, wenn mit großen Datensätzen gearbeitet wird. Anders als numpy.append(), das möglicherweise eine Umstrukturierung des gesamten Arrays erfordert, sind hstack() und vstack() für spaltenweise bzw. zeilenweise Erweiterungen optimiert.
Wenn Sie mit strukturierten numerischen Daten arbeiten, müssen Sie möglicherweise auch Matrizen transponieren, um Daten effizient umzuformen. Lesen Sie unseren Artikel zum Transponieren von Matrizen in Python.
Den +=-Operator verwenden
array = [[1, 2], [3, 4]]
array += [[5, 6]]
print(array)
Ausgabe:
[[1, 2],
[3, 4],
[5, 6]]
Diese Methode ist eine Kurzschreibweise für append(), verändert die Liste aber an Ort und Stelle. Die Verwendung von += stellt sicher, dass neue Zeilen direkt hinzugefügt werden, ohne eine neue Referenz zu erzeugen, was sie zu einem effizienten Ansatz für den Umgang mit kleinen 2D-Listen macht.
extend() verwenden, um mehrere Zeilen anzuhängen
array = [[1, 2], [3, 4]]
array.extend([[5, 6], [7, 8]])
print(array)
Ausgabe:
[[1, 2],
[3, 4],
[5, 6],
[7, 8]]
Dies ist nützlich, wenn Sie mehrere Zeilen auf einmal hinzufügen. Die Methode extend() ist besonders hilfreich, wenn Daten aus verschiedenen Quellen in einer einzigen 2D-Liste zusammengeführt werden.
Wenn Sie die aktualisierte Liste als CSV-Datei speichern müssen, können Sie unseren Leitfaden zum Schreiben von Listen in eine CSV-Datei in Python lesen.
insert() verwenden, um eine Zeile an einem bestimmten Index hinzuzufügen
array = [[1, 2], [3, 4]]
array.insert(1, [5, 6])
print(array)
Ausgabe:
[[1, 2],
[5, 6],
[3, 4]]
Die Methode insert() ermöglicht eine präzise Platzierung von Zeilen innerhalb des Arrays. Dies ist nützlich, wenn mit geordneten Datensätzen gearbeitet wird, bei denen neue Einträge an bestimmten Positionen eingefügt werden müssen, ohne die Gesamtstruktur zu stören.
Verschachtelte Schleifen für die dynamische Befüllung von 2D-Arrays verwenden
array = []
for i in range(3):
row = []
for j in range(2):
row.append(i * j)
array.append(row)
print(array)
Ausgabe:
[[0, 0],
[0, 1],
[0, 2]]
Diese Methode ist nützlich, um strukturierte 2D-Arrays dynamisch zu erzeugen. Die Verwendung verschachtelter Schleifen bietet volle Kontrolle darüber, wie die Daten befüllt werden, was sie ideal für die programmatische Erzeugung von Matrizen und gitterbasierten Strukturen macht.
Fazit
Python bietet mehrere Möglichkeiten, Werte an ein 2D-Array anzuhängen. Wenn Sie mit Standardlisten arbeiten, sind append(), extend() und List Comprehensions effektive Wahlmöglichkeiten. Für numerische Operationen mit hoher Leistung bieten NumPys append(), hstack() und vstack() optimierte Lösungen. Die richtige Methode hängt davon ab, ob Sie kleine Listen oder umfangreiche numerische Daten handhaben.
Methodenvergleich
| Methode | Geeignet für | Flexibilität | Leistung |
|---|---|---|---|
append() |
Eine Zeile hinzufügen (Python-Liste) | Hoch | Mittel |
list comprehension |
Eine Spalte hinzufügen (Python-Liste) | Mittel | Hoch |
numpy.append() |
Zeilen/Spalten anhängen (NumPy) | Hoch | Hoch |
hstack() / vstack() |
Zeilen/Spalten effizient anhängen (NumPy) | Hoch | Sehr hoch |
+=-Operator |
Schnelles Anhängen einer Zeile (Python-Liste) | Niedrig | Hoch |
extend() |
Mehrere Zeilen anhängen (Python-Liste) | Mittel | Hoch |
insert() |
An einem bestimmten Index einfügen (Python-Liste) | Mittel | Mittel |
| Verschachtelte Schleifen | Dynamische Datengenerierung | Hoch | Variabel |