ML: Was kann die Python Bibliothek NumPy?

Die Python Bibliothek ist besonders im Zuge von Machine Learning interessant. Der Hauptzweck der Bibliothek sind multidimensionalle Arrays – Also Matrizen.

Ein gutes Tutorial findet sich hier: http://scipy.github.io/old-wiki/pages/Tentative_NumPy_Tutorial

Ich werde diesen Beitrag jeweils erweitern, wenn ich eine neue Funktion der Bibliothek verwende.

Von Achsen, Dimensionen und Rängen

Bei NumPy wird eine Dimension oder ein Wert als Achse (axe) bezeichnet. Die Nummer der Achsen heisst Rang (rank).

Ein einfacher Array [1, 2, 1] hat also den Rang 1 und die Achse hat eine Länge von 3. Ein zweidimensionaler Array hat den Rang 2. Die erste Dimension hat eine Länge von 2 und die zweite Dimension eine Länge von 3 – Man geht also quasi von aussen nach innen.

[[ 1., 0., 0.],[ 0., 1., 2.]]

Zugreifen auf einen Index

Grundsätzlich ist das Verhalten gleich wie bei Python Listen. Um auf einen bestimmten Index zuzugreifen verwendet man die eckigen Klammern [ ].

Bei zweidimensionalen Arrays ist der erste Index die Zeilennummer und der zweite Index die Spaltennummer. Um etwa auf das Element der vierten Zeile und der dritten Spalte zuzugreifen macht man

X[3, 2]

Nicht vergessen, dass der Index bei 0 anfängt.

Importieren der Bibliothek

Um NumPy zu verwenden importiert man diese und kann auf Wunsch gleich noch ein Kürzel angeben.

import numpy as np

Erstellen eines leeren Arrays mit np.zeros

Mit np.zeros kann ein leerer Array erstellt werden.

Beispiel:
numpy.zeros(3) ergibt einen einfachen Array ([ 0., 0., 0.])

Daten erhalten mit mit np.where

Beim Befehl np.where kann man eine Kondition mitgeben und erhält als Resultat die Daten des Arrays, die der Kondition entsprechen.

Format: where(condition[, x, y])

Wenn die Kondition wahr ist, gib x zurück, ansonsten y. x und y müssen dabei dasselbe Format haben wie die Kondition (array-like oder Boolean).

Moment, das muss ich anders schreiben: Es kann im Resultat gleichzeitig Werte von x und y haben. Wenn ein einzelnes Element des Arrays der Kondition entspricht, wird sie von x genommen, ansonsten von y.

Beispiel:
x[np.where( x > 3.0 )]
Resultat: array([ 4., 5., 6., 7., 8.])
 
Beispiel 2:
np.where([[True, False], [True, True]],
[[1, 2], [3, 4]],
[[9, 8], [7, 6]])
 
Resultat: array([[1, 8],[3, 4]])

„True“ heisst hier quasi „Nimm den Wert an dieser Stelle von x“ und „False“ heisst „Nimm den Wert an dieser Stelle von y“.

Skalarprodukt zweier Zahlen mit np.dot

Um das Skalarprodukt zweier Zahlen oder das Matrixprodukt von Arrays zu erhalten verwendet man np.dot.

Beispiel:
np.dot(3, 4)
Resultat: 12
 
Beispiel 2:
a = [[1, 0], [0, 1]]
b = [[4, 1], [2, 2]]
np.dot(a, b)
 
Resultat: array([[4, 1],[2, 2]])

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit deinem WordPress.com-Konto. Abmelden /  Ändern )

Facebook-Foto

Du kommentierst mit deinem Facebook-Konto. Abmelden /  Ändern )

Verbinde mit %s