Was ist NumPy?

NumPy (kurz für Numerical Python) ist eine leistungsstarke Bibliothek für die Durchführung mathematischer Operationen auf großen Datenfeldern. Sie ist in Python geschrieben und baut auf der numerischen Bibliothek von Python auf, wodurch sie sich leicht in andere Python-Bibliotheken und -Tools integrieren lässt. NumPy ist in der wissenschaftlichen und daten-wissenschaftlichen Gemeinschaft weit verbreitet und gilt als grundlegendes Werkzeug für viele datenintensive Anwendungen.

Eines der Hauptmerkmale von NumPy ist die Fähigkeit, mit Arrays von Daten zu arbeiten. Ein Array ist eine Datenstruktur, die eine Sammlung von Elementen desselben Typs in einem zusammenhängenden Speicherblock speichert. NumPy-Arrays sind ähnlich wie Python-Listen, aber sie sind für bestimmte Arten von Operationen, wie z. B. mathematische Berechnungen, viel effizienter.

NumPy wird häufig für die Durchführung von mathematischen Operationen auf großen Arrays von Daten verwendet. Auch für andere Aufgaben, wie das Umformen (reshapen), Verflachen (flatten) und Anhängen (append) von Arrays, findet es häufig Anwendung.

Beispiele für die Anwendung von NumPy

Erstellen eines NumPy-Arrays

Ein NumPy-Array kann aus einer Python-Liste mithilfe der Funktion numpy.array() erstellt werden. Zum Beispiel wird mit Hilfe der Funktion numpy.linspace() ein Array mit 10 gleichmäßig verteilten Werten zwischen 0 und 1 generiert.

import numpy as np
a = np.linspace(0, 1, 10)
print(a)

Umformung eines Arrays

Die Form eines NumPy-Arrays kann mit der Funktion reshape() geändert werden. Dafür kann beispielsweise ein 1D-Array mit 10 Elementen in ein 2D-Array mit 5 Zeilen und 2 Spalten umgewandelt werden.

import numpy as np
a = np.arange(10)
print(a)
b = a.reshape(5, 2)
print(b)

Mathematische Operationen mit Arrays durchführen

Mathematische Operationen können mit Arrays durchgeführt werden, z. B. Addition, Subtraktion, Multiplikation und Division, indem die standardmäßigen mathematischen Operatoren verwendet werden. Zum Beispiel können zwei Arrays addiert und die Summe aller Elemente in einem Array berechnet werden.

import numpy as np
a = np.array([1, 2, 3, 4, 5])
b = np.array([5, 4, 3, 2, 1])
c = a + b
print(c)
print(c.sum())

Random choices

In NumPy kann die Funktion numpy.random.choice() verwendet werden, um zufällig Elemente aus einem Array oder einem gegebenen 1-D-Array-ähnlichen Objekt auszuwählen.

Hier ein Beispiel, um zufällig drei Elemente aus einem Array auszuwählen:

import numpy as np
a = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
b = np.random.choice(a, size=3, replace=False)
print(b)

Der obige Code wählt nach dem Zufallsprinzip 3 Elemente aus dem Array „a“ aus, ohne sie zu ersetzen, und weist sie der Variablen „b“ zu.

Auch die Wahrscheinlichkeit kann für die Auswahl jedes Elements mit dem Parameter p angegeben werden. Wenn zum Beispiel drei Elemente aus dem Array „a“ zufällig ausgewählt werden sollen, aber das Element mit dem Wert 5 eine höhere Wahrscheinlichkeit haben soll, ausgewählt zu werden, können Sie den folgenden Code verwenden:

import numpy as np
a = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
p = [0.1, 0.1, 0.1, 0.1, 0.3, 0.1, 0.1, 0.1, 0.1, 0.1]
b = np.random.choice(a, size=3, p=p)
print(b)

In diesem Beispiel hat das Element mit dem Wert 5 eine Wahrscheinlichkeit von 30%, ausgewählt zu werden, während alle anderen Elemente eine Wahrscheinlichkeit von 10% haben.

Eine weitere nützliche Funktion für die Zufallsauswahl ist numpy.random.shuffle, die das Array entlang der ersten Achse eines mehrdimensionalen Arrays mischt. Diese Funktion ändert die Eingabe an Ort und Stelle und gibt None zurück.

import numpy as np
a = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
np.random.shuffle(a)
print(a)

NumPy vs. Python

NumPy ist schneller als Python-Listen, weil es ein effizienteres Speicherlayout für Arrays verwendet, das einen schnelleren Zugriff auf die Elemente ermöglicht. Darüber hinaus bietet NumPy eine breite Palette an eingebauten mathematischen Funktionen, die für die Verwendung mit Arrays optimiert sind.

NumPy vs. Pandas

Im Vergleich zu Pandas ist NumPy eine Bibliothek auf niedrigerer Ebene, die sich auf die Bereitstellung effizienter Array-Operationen konzentriert. Pandas baut auf NumPy auf und bietet zusätzliche Funktionen für die Arbeit mit tabellarischen Daten, wie z. B. Datenrahmen und -reihen. Während NumPy für die Durchführung mathematischer Operationen auf großen Daten-Arrays nützlich ist, eignet sich Pandas für Datenmanipulationen und Analyseaufgaben.

NumPy ist nicht so leicht zu erlernen wie Pandas, da Pandas eine High-Level-Schnittstelle für die Arbeit mit tabellarischen Daten bietet, die benutzerfreundlicher ist als die Array-Operationen von NumPy. NumPy ist jedoch ein grundlegendes Werkzeug für viele datenintensive Anwendungen und wird in der wissenschaftlichen und Data-Science-Gemeinschaft häufig verwendet.

In Bezug auf die Leistung ist NumPy schneller als Pandas, wenn es um die Durchführung von Array-Operationen geht. Pandas bietet jedoch zusätzliche Funktionen für die Arbeit mit tabellarischen Daten, die es für bestimmte Arten von Operationen langsamer machen können.