NumPy

NumPy ist die Abkürzung für “Numeric Python” und eine bekannte Python-Library. Mit NumPy lassen sich Rechnungen mit multidimensionallen Arrays einfach und effizient ausführen. Dabei werden in der Regel Python-Listen in NumPy-Arrays umgewandelt. Aufgrund diverser Eigenschaften von NumPy-Arrays kann der Python-Interpreter dann diese schneller bearbeiten als Listen.

NumPy installieren

Wie im Kapitel über Packages beschrieben, muss vor der Nutzung von NumPy das Package installiert werden:

pip3 install numpy

Im Anschluss muss es importiert werden:

import numpy as np

NumPy-Arrays erstellen

Gehen wir nun davon aus, dass wir folgende zwei Listen haben:

width = [2, 5, 3, 6, 7, 9]
height = [4, 6, 8, 2, 7, 8]

Um diese zwei Listen nun in NumPy-Arrays umzuwandeln reicht der Aufruf der array()-Methode aus dem importieren NumPy-Package:

np_width = np.array(width)
np_height = np.array(height)

Da wir nun NumPy-Arrays haben können wir sehr einfach die Quadradmeter aller Breiten und Höhen errechnen. Mit Listen wäre das nur umständlich über Lopps o.ä. möglich. Hier der einfache Weg mit NumPy:

square = np_width * np_height

Würden wir das selbe Prinzip mit Listen probieren, würde uns der Python-Interpreter einen Error zurückgeben:

# Das würde nicht funktioneren
square = width * height
# Gibt folgendes zurück:
# TypeError: can't multiply sequence by non-int of type 'list'

Geben wir aber die Multiplikation unserer beiden NumPy-Arrays aus (Variable “square”), sehen wir, dass die Operation erfolgreich war:

print(square)
# Ausgabe: [ 8 30 24 12 49 72]

Wenn wir den Typ prüfen, dann stellt man fest, dass es sich um folgenden dabei handelt:

print(type(square))
# <class 'numpy.ndarray'>

Wir haben es also mit einem neuen Datentyp zu tun. Sprich, auch dieser Datentyp – genauso wie Strings, Ganzzahlen, Listen, etc. – hat seine eigenen Methoden mit eigenen Verhaltensweisen. Nehmen wir als Beispiel eine einfache Liste:

exampleList = [2, 4, 6]

Wenn wir nun die Liste mit sich selbst addieren, dann werden sie kombiniert:

exampleList + exampleList
# Ausgabe: [2, 4, 6, 2, 4, 6]

Anders bei NumPy. Definieren wir zunächst ein Array:

exampleArray = np.array([2, 4, 6])

Wenn wir nun das Array mit sich selbst addieren, dann werden die einzelnen Werte tatsächlich addiert und zurückgegeben:

exampleArray + exampleArray
# Ausgabe: [4 8 12]

Auf Daten in einem NumPy-Array zugreifen

Grundsätzlich erfolgt der Zugriff auf Element im NumPy-Array wie bei Listen. Um das das zweite Element zuzugreifen, würde man folgendes schreiben:

exampleArray = np.array([10, 43, 21, 54, 13, 51, 12])
exampleArray[1]

In NumPy kann man jedoch auch mit Wahrheitswerten arbeiten. Nehmen wir an, wir möchte alle Werte aus unserem Array, die größer sind als 20. Im ersten Schritt würden wir das größer-gleich-Zeichen nutzen:

exampleArray > 20

Damit bekommen wir folgendes Ergebnis:

[False True True True False True False]

Noch immer ist es ein NumPy-Array, jedoch mit Wahrheitswerten. Alle Werte die unter 20 liegen, werden nun mit “False” ausgegeben, die anderen mit “True”. Um nun die Teilmenge auszuwählen, die über 20 liegt, müssen wir alle Elemente wählen, deren Wahrheitswerte gleich “True” entspricht. Das geschieht wie folgt:

exampleArray[exampleArray > 20]

Damit kommen wir zu unserem gewünschten Ergebnis:

[43 21 54 51]

Keine Kommentare möglich.