7. Unterrichtsblock
Python Listen
meineListe = ["Apfel", "Zwetschge", "Birne"]
Die Liste
Listen werden verwendet, um mehrere Elemente in einer einzigen Variablen zu speichern.
Listen sind einer von 4 integrierten Datentypen in Python, die zum Speichern von Datensammlungen verwendet werden, die anderen 3 sind Tupel, Sets und Dictionaries, alle mit unterschiedlichen Qualitäten und Verwendungszwecken.
Python-Sammlungsdatentypen (Arrays)
In der Programmiersprache Python gibt es vier Sammlungsdatentypen:
- Liste ist eine Sammlung, die geordnet und veränderbar ist. Erlaubt doppelte Werte.
- Tuple ist eine Sammlung, die geordnet und unveränderlich ist. Erlaubt doppelte Werte.
- Set ist eine Sammlung, die ungeordnet, unveränderlich* und nicht indiziert ist. Keine doppelten Werte.
- Dictionary ist eine Sammlung, die geordnet** und veränderbar ist. Keine doppelten Schlüssel.
*Set- Elemente können nicht geändert werden, aber man kann Elemente jederzeit entfernen und/oder hinzufügen.
**Ab Python-Version 3.7 sind Dictionaries geordnet. In Python 3.6 und früher sind Dictionaries ungeordnet.
Bei der Auswahl eines Sammlungstyps ist es hilfreich, die Eigenschaften dieses Typs zu verstehen. Die Wahl des richtigen Typs für einen bestimmten Datensatz kann bedeuten, dass die Bedeutung erhalten bleibt, und es kann eine Steigerung der Effizienz oder Sicherheit bedeuten.
Listen werden mit eckigen Klammern erstellt:
# Erstellung einer Liste:
meineListe = ["Apfel", "Zwetschge", "Birne"]
print(meineListe)
Kopieren von Listen
Man kann Listen nicht kopieren indem man liste2 = liste1
eingibt, da liste2
nur ein Verweis auf liste1
ist und Änderungen in liste1
dadurch automatisch auch in liste2
vorgenommen werden.
Es gibt jedoch Möglichkeiten eine Kopie zu erstellen. Eine Möglichkeit ist die Verwendung der integrierten Listen-Methode copy()
.
Erstellen einer Listenkopie mit der copy()
Methode:
meineListe = ["Apfel", "Zwetschge", "Birne"]
listenKopie = meineListe.copy()
print(listenKopie)
Eine weitere Möglichkeit eine Kopie zu erstellen, ist die Verwendung der integrierten Methode list()
.
Erstellen Sie eine Kopie einer Liste mit der list()
Methode:
meineListe = ["Apfel", "Zwetschge", "Birne"]
listenKopie = list(meineListe)
print(listenKopie)
Aufgabe
Baue o.g. Codes nach und kombiniere diese mit den Lektionen aus vorhergegangenen Unterrichtsblöcken.
Verbinden & Verketten von Listen
Es gibt mehrere Möglichkeiten, zwei oder mehr Listen in Python zu verbinden oder zu verketten.
Eine der einfachsten Möglichkeiten ist die Verwendung des +
Operators. Es folgt ein Beispiel zum Zusammenführen von zwei Listen:
liste1 = ["a", "b", "c"]
liste2 = [1, 2, 3]
liste3 = liste1 + liste2
print(liste3)
Eine andere Möglichkeit zwei Listen zu verbinden besteht darin, alle Elemente aus Liste2 nacheinander an Liste1 anzuhängen:
# Liste2 an Liste1 mit einer Schleife anhängen:
liste1 = ["a", "b", "c"]
liste2 = [1, 2, 3]
for x in liste2:
liste1.append(x)
print(liste1)
Ebenfalls besteht die Möglichkeit, die extend()
Methode zu verwenden, deren Zweck darin besteht, Elemente von einer Liste zu einer anderen Liste hinzuzufügen:
# Verwendung der extend() Methode, um liste2 am Ende von liste1 hinzuzufügen:
liste1 = ["a", "b", "c"]
liste2 = [1, 2, 3]
liste1.extend(liste2)
print(liste1)
Aufgabe
Baue o.g. Code nach und ergänze diese mit den erlernten Methoden um eine weiteren Liste mit 3 Früchten und um eine Kopie von liste1
.
Listen Methoden
Python verfügt über eine Reihe integrierter Methoden, die man für Listen verwenden kann.
Methode | Beschreibung |
---|---|
append() | Ergänzt die Liste am Ende um ein weiteres Element |
clear() | Entfernt alle Elemente aus der Liste |
copy() | Gibt eine Kopie der Liste aus |
count() | Gibt die Anzahl der Elemente mit dem angegebenen Wert zurück |
extend() | Fügt die Elemente einer Liste (oder einer Iterablen) am Ende der aktuellen Liste hinzu |
index() | Gibt den Index des ersten Elements mit dem angegebenen Wert zurück |
insert() | Fügt ein Element an der angegebenen Position hinzu |
pop() | Entfernt das Element an der angegebenen Position |
remove() | Entfernt das Element mit dem angegebenen Wert |
reverse() | Kehrt die Anordnung der Liste um |
sort() | Sortiert die Liste |
Machinelle Lernanwendung zur Bilderkennung
Zielanwendung
- Das Programm soll lernen, Bilder von Hunden und anderen Tieren zu unterscheiden.
- Benötigt wird ein binärer Klassikfikator (Klassifikatoren, die in zwei Gruppen sortieren)
- Perzeptron (Übliches Werkzeug, um so einen Klassifikator zu bauen)
Was ist ein Perzeptron?
Ein Perzeptron ist die Entwicklung Basiert auf der Matehmatischen Nachbildung eines Neurons: des McCulloch-Pitts Neuron
Verschiedene mathematische Nachbildungen des McCulloch-Pitts-Neurons
Eingangssignale
Als Eingangssignale haben wir bei der Bilderkennung Bilder von Hunden und anderen Tieren. Da wir Bilder im Code jedoch nicht verarbeiten können, müssen wir diese zuerst konvertieren.
Die Variablen (sog. „Feature“ z. B. Größe, Farbe, Anzahl der Beine) werden als Eingangssignale x1, x2, … xm in das Perzeptron gegeben.
beine = 4
groesse = 35.6
breite = 34.2
farbe = 'Beige'
label = 'Hund'
Binärer Klassifikator
Aufgabe
In welche Kategorie des maschinellen Lernens fällt der „Klassifikator“?
Mit Mengen arbeiten & Trainingsdaten
Zunächst werden Beispieldaten benötigt, die bereits gelabelt sind.
In Python gibt es mehrere Datentypen zum speichern von Mengen:
- Liste ist eine Sammlung, die geordnet und veränderbar ist. Erlaubt doppelte Werte.
- Tuple ist eine Sammlung, die geordnet und unveränderlich ist. Erlaubt doppelte Werte.
- Set ist eine Sammlung, die ungeordnet, unveränderlich* und nicht indiziert ist. Keine doppelten Werte.
- Dictionary ist eine Sammlung, die geordnet** und veränderbar ist. Keine doppelten Schlüssel.
*Set- Elemente können nicht geändert werden, aber man kann Elemente jederzeit entfernen und/oder hinzufügen.
**Ab Python-Version 3.7 sind Dictionaries geordnet. In Python 3.6 und früher sind Dictionaries ungeordnet.
# Menge als Set
feature = {4, 35.6, 34.2, "Beige", "Hund"}
# Menge als Tupel
feature = (4, 35.6, 34.2, "Beige", "Hund")
# Menge als Liste
feature = [4, 35.6, 34.2, "Beige", "Hund"]
# Menge als Dictionary
feature = {
'beine': 4,
'groesse': 35.6,
'breite': 32.2,
'farbe': "Braun",
'label': "Hund"
}
Aufgabe
- Gib einen Wert aus der Liste, dem Set, dem Tupel und dem Dictionary aus.
- Diskutiere in der Klasse, welcher Mengendatentyp für unseren Anwendungsfall am besten geeignet ist. Bedenke, dass der Code schlank bleiben soll.
Lösung
Aufgabe
Gib einen Sammelwert aus o.g. Menge aus und anschließend einen Einzelwert.
Aufgabe
Erstelle ein Dictionary mit Deinen Lieblingsfilmen / Lieblingsspielen / Lieblingsbüchern und versuche die einzelnen Werte in Listen zu speichern.