numpy.append() in Python

Einführung

Numpy ist ein Eckpfeiler in der Python-Welt für numerische Berechnungen. Diese Bibliothek stellt eine Fülle von Werkzeugen zur Verfügung, um numerische Daten zu manipulieren und zu analysieren. Ein besonders nützliches Werkzeug ist numpy.append(), das zum Erweitern von Arrays verwendet wird.

Mit numpy.append() lassen sich auf einfache Weise zusätzliche Elemente oder komplette Arrays an das Ende eines bestehenden Arrays anfügen. Dies macht die Funktion zu einem flexiblen und effizienten Helfer in vielen Programmiersituationen. In diesem Artikel gehen wir den verschiedenen Facetten von numpy.append() auf den Grund und geben anhand von Beispielen einen Einblick in dessen Anwendung.

Die Syntax im Detail

Die grundlegende Struktur von numpy.append() sieht folgendermaßen aus:

python
numpy.append(arr, values, axis=None)

Hierbei bedeuten:

  • arr: Das Zielarray, an welches neue Elemente oder ein Array angehängt werden sollen.
  • values: Die anzuhängenden Elemente oder das Array selbst.
  • axis: Eine optionale Achse, entlang welcher die Verkettung stattfinden soll.

Die Argumente

Das Array: ‚arr‘

Dies ist das Array, das durch das Anhängen erweitert wird. Es kann entweder ein eindimensionales oder ein mehrdimensionales Array sein.

Die Werte: ‚values‘

Dies sind die Elemente oder das Array, das an das ursprüngliche Array angehängt wird. Hierbei kann es sich um ein einzelnes Element, eine Liste von Elementen oder ein anderes Array handeln.

Die Achse: ‚axis‘

Dies ist ein optionales Argument, das die Richtung der Verkettung bestimmt. Wenn axis nicht angegeben wird (d. h. auf None gesetzt ist), erfolgt die Verkettung standardmäßig entlang der letzten Achse.

Der Rückgabewert

numpy.append() gibt ein neues Array zurück. Dieses neue Array ist das Ergebnis der Zusammenführung des ursprünglichen Arrays mit den hinzugefügten Werten. Der Datentyp des neuen Arrays entspricht dem Datentyp des ursprünglichen Arrays.

Anwendungsszenarien

Ein einzelnes Element hinzufügen

Um ein einzelnes Element an das Ende eines Arrays zu setzen, verwenden Sie diesen Aufbau:

python
neues_array = numpy.append(arr, element)

Dabei ist element das Element, das angefügt wird.

Eine Liste von Elementen hinzufügen

Um eine Liste von Elementen an ein Array anzuhängen, verwenden Sie die folgende Syntax:

python
neues_array = numpy.append(arr, [element1, element2, ...])

Hier ist [element1, element2, ...] die Liste der Elemente.

Ein anderes Array hinzufügen

Um ein anderes Array an ein bestehendes Array anzufügen, verwenden Sie:

python
neues_array = numpy.append(arr, anderes_array)

Hierbei ist anderes_array das anzufügende Array.

Verkettung entlang einer bestimmten Achse

Um eine Verkettung entlang einer definierten Achse durchzuführen, übergeben Sie den Parameter axis mit der entsprechenden Achsen-Nummer. Um beispielsweise eine Verkettung entlang der ersten Achse eines zweidimensionalen Arrays zu bewirken, verwenden Sie:

python
neues_array = numpy.append(arr, anderes_array, axis=0)

Praktische Beispiele

Beispiel 1: Hinzufügen eines einzelnen Elements

python
import numpy as np

arr = np.array([1, 2, 3])
neues_array = np.append(arr, 4)
print(neues_array)

Ausgabe: [1 2 3 4]

Beispiel 2: Hinzufügen einer Elementliste

python
import numpy as np

arr = np.array([1, 2, 3])
neues_array = np.append(arr, [4, 5, 6])
print(neues_array)

Ausgabe: [1 2 3 4 5 6]

Beispiel 3: Anfügen eines anderen Arrays

python
import numpy as np

arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
neues_array = np.append(arr1, arr2)
print(neues_array)

Ausgabe: [1 2 3 4 5 6]

Beispiel 4: Verkettung entlang einer bestimmten Achse

python
import numpy as np

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

Ausgabe:

[1 2]
[3 4]
[5 6]

Zusammenfassung

Die Funktion numpy.append() bietet eine vielseitige und effiziente Methode zur Erweiterung von Numpy-Arrays. Sie ermöglicht das Hinzufügen von einzelnen Elementen, Listen von Elementen oder kompletten Arrays. Die Möglichkeit, eine Achse für die Verkettung zu definieren, macht die Funktion besonders wertvoll für den Umgang mit mehrdimensionalen Arrays.

Die Anwendung von numpy.append() ist einfach und intuitiv, wie die obigen Beispiele veranschaulichen. Ein solides Verständnis dieser Funktion ermöglicht es Entwicklern, sie effektiv in ihren numerischen Berechnungen einzusetzen.

Häufig gestellte Fragen (FAQs)

1. Worin liegt der Unterschied zwischen numpy.append() und numpy.concatenate()?

numpy.append() fügt Elemente oder Arrays an das Ende eines existierenden Arrays an, während numpy.concatenate() mehrere Arrays entlang einer bestimmten Achse zusammenfügt.

2. Kann numpy.append() zum Verbinden von Arrays mit unterschiedlichen Datentypen verwendet werden?

Nein, die zu verbindenden Arrays müssen den gleichen Datentyp aufweisen.

3. Wie kann man ein Element am Anfang eines Arrays anfügen?

Um ein Element am Anfang eines Arrays anzufügen, verwenden Sie numpy.insert().

4. Wie erfolgt die Verkettung eines Arrays in mehreren Dimensionen?

Definieren Sie die Achse durch das axis-Argument. Um beispielsweise ein Array entlang der ersten Dimension eines zweidimensionalen Arrays anzufügen, verwenden Sie axis=0.

5. Kann man mit numpy.append() eine leere Liste oder ein leeres Array anfügen?

Nein, die anzuhängenden Werte oder das Array dürfen nicht leer sein.

6. Gibt es eine Möglichkeit, numpy.append() „in-place“ auszuführen?

Ja, mithilfe der where=-Option lässt sich numpy.append() „in-place“ verwenden. Zum Beispiel um ein Element am Ende eines Arrays „in-place“ anzufügen:

python
numpy.append(arr, value, where="end")

7. Wie kann man ein Array anhängen, ohne neuen Speicher zu allozieren?

Für das Anhängen ohne neue Speicherallokation nutzen Sie die out=-Option. Um ein Element am Ende eines Arrays ohne zusätzliche Speicherallokation anzufügen, schreiben Sie beispielsweise:

python
neues_array = np.empty_like(arr)
numpy.append(arr, value, out=neues_array)

8. Kann numpy.append() zum Anhängen von Zeichenketten an ein Array verwendet werden?

Nein, numpy.append() ist nicht für das Anhängen von Zeichenketten gedacht. Für diesen Zweck nutzen Sie stattdessen numpy.char.add().