Arrays in Python sind Listen, bei denen alle Werte denselben Datentypen besitzen.

Um Daten aufzulisten kann man gewöhnliche Listen oder Tupel verwenden. Manchmal ist es aber sinnvoll, dass eine Liste gewissen Regeln unterliegt. So können wir z.B. definieren, dass in einer Liste nur glatte Zahlen – also Integer – auftauchen dürfen. Sie sind auch unbegrenzt erweiterbar, wodurch wir immer wieder neue Werte an unseren Array heften können.

In der Praxis arbeitet man häufig mit Arrays in Tabellen. Ein Array würde hier eine Spalte darstellen. Haben wir also eine Tabelle, welche Familiendaten erfasst, könnte eine Spalte die Anzahl der Kinder sein. Dabei möchten wir möglichst Strings (Texte) und Floats (Kommazahlen) ausschließen. Gibt unser Praktikant also versehentlich „fünf“ anstatt „5“ Kinder in das Array ein, erscheint eine Fehlermeldung.

Wofür braucht man Arrays?

In der Praxis gibt es etliche Möglichkeiten, um mit Arrays zu arbeiten:
  1. Mathematik: Durch diese Schreibweise können wir Vektoren und Matrizen mit Arrays darstellen. Wir können also auch mehr-dimensionale Arrays entwickeln und damit mathematische Modelle programmatisch lösen.
  2. Visualisierung: Arrays sind häufig die Daten-Grundlage für mathematische Graphen wie z.B. Scatterplots. In bekannten Python-Modulen wie Matplotlib nutzt man in der Regel Arrays zur Visualisierung von Daten.
  3. Tabellenbearbeitung: Das Python-Modul Pandas, welches quasi Excel in Code-Form ist, basiert ebenfalls auf Numpy. In Pandas lassen sich Tabellen und Spalten bearbeiten und miteinander verrechnen, was durch Numpy als Grundlage möglich ist. So können wir z.B. die gesamte
benutzerdaten = ("xXDeStRoYeR2009Xx", "passwort123", "[email protected]")
print(benutzerdaten[0])
print(benutzerdaten[2])

### Output:
>> xXDeStRoYeR2006Xx
>> [email protected] 

Arrays in Python

Arrays existieren im Python-Standardpaket nicht. Dafür können wir ein Modul namens „NumPy“ importieren. 

import numpy as np 

Module sind quasi Pakete mit vorgefertigten Codeschnipseln. In diesem Fall importieren wir Numpy in unseren Code und können auf das Modul zugreifen, indem wir „np.“ vor jede Funktion aus diesem Paket setzen. In diesem Fall ist „np“ eine international einheitliche Abkürzung für Numpy, aber wir können sie nennen/abkürzen, wie wir möchten.

Möchten wir eine Liste in ein Array umwandeln, bietet uns Numpy den Vorteil, dass es den Datentypen normalisieren kann. Soll ein Array aus Floats bestehen, würde er Integer wie „1“ zu „1.0“ umwandeln.

arr = np.array([1, 2, 3.3, 4.4, 5.5, 10]
print(arr)

### Output:
>> [1.0, 2.0, 3.3, 4.4, 5.5, 10.0] 

Um individuelle Werte aus dem Array auszugeben, setzen wir nach unserem Array eckige Klammern und setzen den Index-Wert ein. Der Index ist die Stelle, an der unsere Wunschzahl steht. Wir möchten z.B. die 10.0 ausgegeben bekommen. Dafür zählen wir alle Werte ab, bis wir bei der 10.0 ankommen. Achtung – in Python fängt man mit der 0 an zu zählen.

#0 = 1.0
#1 = 2.0
#2 = 3.3
#3 = 4.4
#4 = 5.5
#5 = 10.0
print(arr[5])

### Output:
>> 10.0 

Aggregatfunktionen mit Arrays in Python

Innerhalb dieses Arrays können wir daraufhin verschiedene Aggregatsfunktionen ablaufen lassen, wie das arithmetische Mittel mit mean(), den größten Wert innerhalb des Arrays mit max() oder den kleinsten Wert mit min().

array_maximum = np.array([1, 2, 3.3, 4.4, 5.5, 10].max()
print(array_maximum)

### Output:
>> 10.0 

Mehrdimensionale Arrays in Python

Arrays können auch mehrere Dimensionen enthalten. Das Ganze können wir uns einfach vorstellen wie Spalten und Zeilen. Möchten wir die 8 ausgeben, schauen wir uns die zweite Zeile (= 1, da wir von 0 anfangen zu zählen) an und die dritte Spalte (=2). Zum Ausgeben kommen in die eckigen Klammern nun zwei Werte: Der erste Wert ist die Zeile und der zweite Wert die Spalte.

arr = np.array([
[1,2,3,4,5],
[6,7,8,9,10],
[11,12,13,14,15]
])

print(arr[1,2])

### Output:
>> 8 

Arrays vs Listen

Welche Vorteile haben Arrays aber gegenüber Listen? Wir könnten ja auch darauf achten, dass die Datentypen innerhalb einer Liste identisch sind.

Geschwindigkeit

Arrays in NumPy sind deutlich schneller als reguläre Listen. Zu jedem Wert in Python Listen existieren Hintergrundinformationen wie z.B. Größe, Anzahl der Verweise auf diesen Wert, Objekttyp und Objektwert. Numpy hingegen sammelt nur Informationen zum Objektwert. Im Vergleich muss unser Computer viel mehr Bytes an Nullen und Einsen in Listen auslesen als bei Arrays und arbeitet dadurch langsamer.

Mehr Funktionen

Wir können einzelne Werte sowohl in Listen als auch in Arrays identisch bearbeiten. Mit NumPy haben wir zusätzlich die Möglichkeit zwei Arrays miteinander zu verrechnen.

a = np.array([1,2,3])
b = np.array([10,20,30])
print(a*b)

### Output:	
>> [10, 40, 90] 

Bei Listen steht uns diese Möglichkeit nicht zur Verfügung. Hier würde es zu einer Fehlermeldung kommen.

a = [1,2,3]
b = [10,20,30]
print(a*b)

### Output:
>> ERROR 

ARTIKEL TEILEN

Hast du Fragen? Hinterlasse einen Kommentar!