Python
Python fortgeschritten
 – Video
Wichtige Inhalte in diesem Video

Die Worte Liste und Array werden in Python häufig synonym verwendet. Es gibt allerdings mehrere verschiedene Arten von Arrays und Listen. Hier stellen wir dir die Wichtigsten vor. Schaue dir auch unser passendes Video dazu an!

Python Array einfach erklärt

Mit einem Python Array (dt. Datenfeld) können in der Regel drei verschiedene Datentypen gemeint sein:

  • Listen (built-in/Standardmäßig in Python),
  • Numpy Arrays (gut für mathematische Operationen und Messdatenauswertung) und
  • Array Arrays (Erlaubt schnelleres Lesen).

Sie haben alle gemeinsam, dass sie eine Liste von Werten speichern können. Jedes Element dieser Listen hat einen eigenen Index, der benutzt wird, um auf die Werte der Liste zuzugreifen.

Die Python Listen sind immer verfügbar. Sie sind sogenannte built-ins. Die anderen beiden sind erst verfügbar, nachdem das Numpy Modul beziehungsweise das Array Python Modul importiert (engl. import module) worden ist. Dafür können dir Numpy und Array viele Berechnungen vereinfachen und dein Programm deutlich leserlicher gestalten.

Hier haben wir für dir die wichtigsten Arbeitsschritte der drei Datentypen zusammengefasst:

  Python Liste Numpy Array Array Array
Initialisieren
array = [1, "abc", [2.72, "e"]]
array = numpy.array([1.2, 3.5])
array = array.array("I", [1, 3, 2])
Lesen
element = array[1]

Numpy Array

Wenn bei deinem Python Programm mathematische Operationen oder das Auswerten von Messdaten im Vordergrund stehen, ist es eine gute Idee, Numpy Arrays zu benutzen. Die musst du allerdings zuerst aus dem Modul Numpy importieren. Dafür schreibst du an den Anfang deines Programms den Befehl:

1 import numpy as np

Danach kannst du mit deinem Programm Arrays erzeugen. Dafür brauchst du die Funktion np.array() und eine Liste (engl. convert list to numpy array), die du in ein Array konvertieren (umformen) willst. Schreibe die Liste einfach in die runden Klammern hinter den Funktionsnamen (Zeile 2).

2 arr = np.array([1, 5, 2.3, 10])
3 print(arr)

Ausgabe: [1.  5.  2.3  10.]

Numpy Arrays speichert nur einen Datentyp 

Anders als Python Listen können Numpy Arrays nur einen einzigen Datentyp speichern. Hier werden alle Zahlen als Dezimalzahlen (engl. floats) gespeichert, obwohl die meisten Elemente des Arrays ganze Zahlen (engl. integers) sind. Wenn du Zeichenketten (engl. strings) und Zahlen in einem Array kombinierst, werden auch die Zahlen als Strings gespeichert! Dann kannst du mit den Zahlen nicht mehr rechnen!

Wie greifst du aber auf die Elemente deines Arrays zu? Das funktioniert genau wie bei einer Python Liste. Jeder Wert in deinem Numpy Array ist nummeriert. Jeder Wert hat einen sogenannten Index. Der erste Index ist 0, der zweite 1, der dritte 2 und so weiter. Wenn du einen bestimmten Wert auslesen willst, musst du seinen Index kennen. Dann schreibst du hinter den Namen deines Arrays den entsprechenden Index in eckigen Klammern und Python sucht Dir den entsprechenden Wert aus dem Array. 

4 element = arr[1]
5 print(element)

Ausgabe: 5.

Hier liest du in Zeile 4 das zweite Element aus deiner Liste. Nicht vergessen: Python fängt bei 0 zu zählen an! 

Numpy Arrays benutzen

Bisher hast du den Vorteil von Numpy Arrays gegenüber Python Arrays noch nicht gesehen: Numpy bietet dir eine Vielzahl von Funktionen, die dir bei mathematischen Operationen helfen. Zu viele, um sie hier alle zu besprechen. Schauen wir uns deshalb nur ein paar Beispiele an:

  Numpy Array Python Liste
Du kannst Arrays ohne Schleife addieren.
1 arr1 = np.array([1, 2])
2 arr2 = np.array([3, 4])
3 res = arr1 + arr2
4 print(res)
1 arr1 = [1, 2]
2 arr2 = [3, 4]
3 res = [i+j for i, j in zip(arr1, arr2)]
4 print(res)

Ausgabe: [4  6]

Du kannst Arrays ohne Schleife mit einer Zahl multiplizieren.
1 arr = np.array([1, 2])
2 res = 5*arr1
3 print(res)
1 arr = [1, 2]
2 res = [5*i for i in arr]
3 print(res)

Ausgabe: [5  10]

Du kannst Kreuzprodukte einfach ausrechnen.
1 arr1 = np.array([1, 0, 0])
2 arr2 = np.array([0, 1, 0])
3 res = np.cross(arr1, arr2)
4 print(res)


1 arr1 = [1, 0, 0]
2 arr2 = [0, 1, 0]
3 res = [arr1[1]*arr2[2]-arr1[2]*arr2[1], 4 arr1[2]*arr2[0]-arr1[0]*arr2[2], 5 arr1[0]*arr2[1]-arr1[1]*arr2[0] ]
6 print(res)

Ausgabe: [0  0  1]

In Numpy gibt es für jedes mathematische Problem eine fertige Funktion. Scheue dich nicht, sie zu benutzen!

Python Matrix

In Numpy kannst du sogar mit Matrizen arbeiten. Dafür brauchst du eine Liste, deren Elemente wiederum selbst Listen sind. Das sind sogenannte verschachtelte Liste (engl. nested list). Wenn du sie in ein Numpy Array konvertierst, erhältst du eine Matrix.

Eingabe:

1 matrix = np.array([ [1, 2], [3, 4] ])
2 print(matrix)

Ausgabe:

[[1 2]
[3 4]]

Wenn du auf ein einzelnes Element deiner Python Matrix zugreifen möchtest, brauchst du dafür zwei Indexe: der erste für die Zeile und der zweite für die Spalte. Jeder Index steht in seinen eigenen eckigen Klammern!

3 element = matrix[1][0]
4 print(element)

Ausgabe: 3

Warum kannst du nicht einfach verschachtelte Python Listen benutzen? Mit den Numpy Arrays sparst du dir wieder viel Arbeit. Hier sind noch ein Paar Beispiele wie dir Numpy Matrixoperationen erleichtert:

Du kannst Matrixmultiplikationen ohne Schleifen in einer Zeile schreiben (Zeile 3):

1 mx1 = np.array([[1, 0], [0, 1]])
2 mx2 = np.array([[0, 1], [1, 0]])
3 res = mx1 @ mx2
4 print(res)

Ausgabe:

[[0 0]
[0 0]]

Du kannst Matrizen mit Zahlen multiplizieren ohne einen verschachtelten for-Loop  bauen zu müssen:

1 mx = np.array([[2, 3], [1, 2]])
2 res = 3*mx
3 print(res)

Ausgabe:

[[6  9]
[3 6]]

Python Array Array

Es gibt auch noch die Python Arrays aus dem Modul Array. Wie bei Numpy musst du das Modul erst mit dem Befehl

1 import array as arr

importieren, bevor du es benutzen kannst. Das Besondere an Array Arrays ist, dass sie wenig Speicherplatz brauchen und sie deswegen effizienter sind. Das ist allerdings nur in Sonderfällen notwendig und sinnvoll. Häufig reicht die Funktionalität der built-in Python Liste.

Wenn du aus einer Liste eine Array Array erzeugen willst, darf deine Liste nur Elemente des gleichen Datentyps (z.B. integer, float, string, char) enthalten und du musst angeben, um welchen Datentyp es sich handelt. Das machst du mit dem sogenannten type code. Für eine Liste von ganzen Zahlen (engl. integers) wäre das der Buchstabe „i“. 

2 neues_array = arr.array("i", [1, 0, 5, 6])

Python Liste

Zuletzt gibt es die standardmäßigen Python Listen.

1 neue_liste = [1.331, "Text", ["e", 2.72]]
2 element = neue_liste[1]
3 for elem in neue_liste:
4 print(elem)

Sie sind den Arrays , die du vielleicht aus anderen Programmiersprachen wie Java kennst, sehr ähnlich. Zu Listen haben wir auch ein eigenes Video vorbereitet. Schaue gleich mal rein!

Zum Video: Python Liste
Zum Video: Python Liste

Hallo, leider nutzt du einen AdBlocker.

Auf Studyflix bieten wir dir kostenlos hochwertige Bildung an. Dies können wir nur durch die Unterstützung unserer Werbepartner tun.

Schalte bitte deinen Adblocker für Studyflix aus oder füge uns zu deinen Ausnahmen hinzu. Das tut dir nicht weh und hilft uns weiter.

Danke!
Dein Studyflix-Team

Wenn du nicht weißt, wie du deinen Adblocker deaktivierst oder Studyflix zu den Ausnahmen hinzufügst, findest du hier eine kurze Anleitung. Bitte lade anschließend die Seite neu.