E-Book, Deutsch, 315 Seiten
Reihe: Rheinwerk Computing
Schildgen Python für KI- und Daten-Projekte
1. Auflage 2026
ISBN: 978-3-367-11320-0
Verlag: Rheinwerk
Format: EPUB
Kopierschutz: 0 - No protection
E-Book, Deutsch, 315 Seiten
Reihe: Rheinwerk Computing
ISBN: 978-3-367-11320-0
Verlag: Rheinwerk
Format: EPUB
Kopierschutz: 0 - No protection
Python programmieren lernen, ohne sich mit »Hello World« aufzuhalten! In diesem Buch finden Sie praxisnahes Python- und KI-Wissen , das Sie auf Ihre Daten und alltäglichen Probleme anwenden können. Python ist die perfekte Lösung für die Datenanalyse . Der Autor lässt Sie keine lästigen Fingerübungen absolvieren, sondern zeigt Praxisfälle, die Sie für Ihre Zwecke adaptieren können. Anhand konkreter Beispiele lernen Sie die Programmierung mit Python und bekommen hilfreiche Tools für Uni, Wissenschaft und Büro an die Hand.
- KI einsetzen, Daten analysieren, Routineaufgaben automatisieren
- Mit wichtigen Werkzeugen wie Jupyter Notebooks, pandas und Matplotlib
- Für Daten aus Excel, Datenbanken, Web-Scraping, XML und vielen mehr
Aus dem Inhalt:
- Loslegen mit Python – ein erstes Script
- Arbeiten mit Dateien
- Datenanalyse und -visualisierung
- Machine Learning und KI
- Datenbanken
- APIs nutzen
- Web-Projekte erstellen
Autoren/Hrsg.
Weitere Infos & Material
Materialien zum Buch ... 11
1. Einführung ... 13
1.1 ... Future Skill: Programmieren ... 13
1.2 ... Python ... 15
1.3 ... Künstliche Intelligenz ... 15
1.4 ... Machine Learning ... 17
1.5 ... Programmieren mit Hilfe von KI ... 18
1.6 ... Prompt Engineering ... 20
2. Loslegen mit Python ... 23
2.1 ... Installation von Python unter Windows ... 23
2.2 ... Installation von Python unter macOS und Linux ... 24
2.3 ... Python im interaktiven Modus verwenden ... 25
2.4 ... Python-Skripte ... 26
2.5 ... Visual Studio Code und IDEs ... 26
2.6 ... Jupyter Notebooks ... 27
3. Grundlagen der Sprache Python ... 33
3.1 ... Variablen und Datentypen ... 34
3.2 ... Kommentare ... 35
3.3 ... Funktionen ... 36
3.4 ... Überprüfungen mit »if«, »elif« und »else« ... 37
3.5 ... Vergleichsoperatoren ... 38
3.6 ... Zahlen ... 39
3.7 ... Die »while«-Schleife ... 40
3.8 ... Die »for«-Schleife ... 41
3.9 ... Mehr zu »print« ... 42
3.10 ... Listen, Mengen, Tupel und Dictionarys ... 43
3.11 ... »for«-Schleife für Listen und Co. ... 45
3.12 ... Beispielprogramm: Wörter zählen ... 47
3.13 ... Eigene Funktionen schreiben ... 50
3.14 ... Pythonischer Code ... 54
3.15 ... Module importieren und Pakete installieren mit »pip« ... 59
3.16 ... »venv« -- virtuelle Umgebungen ... 61
4. Mit Dateien arbeiten ... 63
4.1 ... Textdateien lesen und schreiben ... 64
4.2 ... CSV-Dateien ... 67
4.3 ... Dateien verwalten ... 70
4.4 ... Beispiel: Textanalyse ... 73
4.5 ... Excel-Dateien ... 75
4.6 ... Bilddateien ... 78
4.7 ... JSON-Dateien ... 81
4.8 ... XML-Dateien ... 84
4.9 ... Konfigurationsdateien ... 86
5. Datenanalysen ... 89
5.1 ... NumPy ... 90
5.2 ... Pandas ... 92
5.3 ... Daten aus Dateien in Pandas-DataFrames laden ... 96
5.4 ... Data-Cleaning mit Pandas ... 99
5.5 ... Berechnungen und Analysen mit Pandas ... 110
5.6 ... Daten aus mehreren Quellen zusammenführen ... 116
6. Visualisierungen mit Matplotlib ... 127
6.1 ... Diagramme erstellen ... 128
6.2 ... Gestaltungsmöglichkeiten ... 129
6.3 ... Subplots -- mehrere Diagramme in einer Abbildung ... 131
6.4 ... Liniendiagramme, Balkendiagramme und mehr ... 133
6.5 ... Diagramme aus DataFrames erzeugen ... 136
6.6 ... Interaktive Diagramme ... 140
6.7 ... Zoomen und Scrollen ... 140
7. Machine Learning und künstliche Intelligenz ... 147
7.1 ... Zahlen vorhersagen mittels linearer Regression ... 149
7.2 ... Lineare Regression mit mehreren Einflussfaktoren ... 151
7.3 ... Klassifikation mittels logistischer Regression ... 155
7.4 ... Entscheidungsbäume und Random Forests ... 158
7.5 ... KNN: k-Nearest Neighbors ... 161
7.6 ... Support Vector Machines (SVM) ... 165
7.7 ... Trainings- und Testdaten und Modellbewertung ... 170
7.8 ... Clustering (Unsupervised Learning) ... 177
8. KI in Aktion: Text- und Bildanalysen ... 181
8.1 ... KI für Texte und Sprache (NLP) ... 181
8.2 ... Textanalysen und Word-Clouds ... 182
8.3 ... Text-Vorverarbeitung (Preprocessing) ... 184
8.4 ... Sentiment-Analysen ... 189
8.5 ... Dinge in Texten erkennen: Named-Entity Recognition (NER) ... 195
8.6 ... Transfer Learning ... 199
8.7 ... KI für Bilder ... 202
8.8 ... Vorverarbeitung von Bildern: Graustufen-Konvertierung etc. ... 203
8.9 ... Kanten und Konturen in Bildern erkennen ... 206
8.10 ... Klassische Methoden des maschinellen Lernens für Bilder ... 211
8.11 ... Bildklassifikation mit Deep Learning ... 217
9. APIs verwenden ... 221
9.1 ... API-Abfragen mit »requests« ... 223
9.2 ... API-Zugriffe mit speziellen SDKs ... 228
9.3 ... Visualisieren und Analysieren von API-Daten ... 229
9.4 ... ChatGPT-API ... 236
10. Python im Web einsetzen ... 243
10.1 ... Die Sprache HTML ... 244
10.2 ... Flask -- ein Python-Webserver ... 246
10.3 ... Interaktive Webtools mit Streamlit ... 249
10.4 ... Webseiten-Inhalte mit Beautiful Soup auslesen ... 251
10.5 ... Den Browser fernsteuern mit Selenium ... 255
10.6 ... E-Mails und Messenger-Nachrichten verschicken ... 259
11. Datenbanken ... 263
11.1 ... Die Sprache SQL und die SQLite-Konsole ... 265
11.2 ... Tabellen erstellen mit CREATE TABLE ... 266
11.3 ... Abfragen, Einfügen, Ändern und Löschen mit SELECT, INSERT, UPDATE und DELETE ... 268
11.4 ... Zugriff auf eine SQLite-Datenbank mit Python ... 271
11.5 ... Pandas-DataFrames aus Datenbanken auslesen und schreiben ... 273
12. Routineaufgaben automatisieren ... 277
12.1 ... Daten per API abrufen und in einer Datenbank speichern ... 277
12.2 ... Diagramme aus Datenbankdaten erstellen und als Bilddateien abspeichern ... 281
12.3 ... Eine E-Mail schicken, wenn es etwas Neues gibt ... 283
12.4 ... Screenshots von Webseiten per Messenger verschicken ... 287
12.5 ... Bilddateien verkleinern, Ort der Aufnahme herausfinden und aufräumen ... 290
12.6 ... PDF-Dateien auseinandernehmen, zusammenführen und zusammenfassen ... 293
12.7 ... Text auf Visitenkarten-Bildern mit OCR erkennen und im Handy-Adressbuch speichern ... 295
12.8 ... Rechnungen, Serienbriefe und andere Dokumente erzeugen ... 298
12.9 ... Python-Skripte zeitgesteuert ausführen ... 302
12.10 ... Fehlerbehandlung und Logging in Automationen ... 305
Index ... 309
3.14 Pythonischer Code
Häufig gibt es verschiedene Arten, ein und dieselbe Sache zu programmieren. Einmal erfordert es viele Codezeilen, mit einer anderen Variante geht es kompakter, und vieles kannst du in Python sogar in einer einzigen Codezeile machen, wenn du weißt, wie. So etwas nennt man pythonischen Code. Darunter versteht man eine Geisteshaltung, die dafür steht, dass Code nicht nur funktionieren, sondern auch schön, klar und verständlich sein soll. Schau dir mal die folgenden Codezeilen an:
for wort in woerter:
if len(wort) >= min_len:
gefiltert.append(wort)
Es wird sich für jedes Wort in der Liste angeschaut, ob es aus mindestens min_len Zeichen besteht. Falls ja, wird es zur Liste gefiltert hinzugefügt. Diese vier Codezeilen machen das Gleiche wie die eine pythonische Zeile Code, die du schon aus dem vorherigen Abschnitt kennst:
Hier wird eine List-Comprehension verwendet. Man erzeugt damit aus einer Liste eine neue Liste. Am einfachsten ist der Ausdruck zu verstehen, wenn wir beim Wort for beginnen zu lesen: Mit for wort in woerter wird über jedes Element in der Liste woerter iteriert, wie wir es aus einer for-Schleife kennen. In der Variablen wort liegt uns also jeweils ein Wort vor. Mit if len(wort) >= min_len filtern wir diejenigen Wörter aus, die das gegebene Längenkriterium nicht erfüllen. Und nun zu dem wort, das vor for steht: Das ist das Wort, das letztendlich in unserer neuen Liste gespeichert werden soll – nämlich die Werte, die jeweils in der Variablen wort stecken.
Wichtig für den Anfang ist nicht, dass du alle diese Skills beherrschst, um deinen Code so pythonisch wie möglich zu schreiben. Klar wäre das toll, aber es geht ja auch ohne. Nur sind dann eben mehr Codezeilen nötig, möglicherweise ist es umständlicher oder schwieriger lesbar und eventuell auch langsamer. Wichtig für den Anfang ist aber, dass du solche Codezeilen verstehst, wenn du sie siehst, z. B. wenn dir ChatGPT pythonischen Code ausgibt. Hier kommen noch einige Beispiele, was die Sprache Python alles ermöglicht:
3.14.1 Aus einer Liste eine neue Liste erzeugen
quadrate = [] # unpythonisch
for x in zahlen:
quadrate.append(x * x)
quadrate = [x * x for x in zahlen] # pythonisch
Hier wird mittels List-Comprehension eine neue Liste namens quadrate erzeugt, in der für jede Zahl aus der ursprünglichen Liste das Quadrat gespeichert wird. Die neue Liste ist also [1, 9, 16].
Wenn du komplexere Dinge mit den Elementen aus der Liste tun willst, kannst du die Funktionalität auch in eine Funktion auslagern und diese dann im List-Comprehension-Ausdruck für jedes Element aufrufen lassen:
woerter = text.split()
return len(woerter)
texte = ["Hey du", "wie geht es dir?", "Mit freundlichen Grüßen"]
zahlen = [wortanzahl(t) for t in texte]
Das Resultat ist eine Liste mit den drei Zahlen [2, 4, 3], weil dies jeweils die Anzahl der Wörter in den entsprechenden Texten ist.
3.14.2 Elemente aus einer Liste filtern
for n in zahlen:
if n % 2 == 0:
gerade_zahlen.append(n)
gerade_zahlen = [n for n in zahlen if n % 2 == 0] # pythonisch
Auch hier erzeugen wir mittels List-Comprehension eine neue Liste, die auf den Einträgen einer ursprünglichen Liste basiert. Das if sorgt dafür, dass nur Werte, die ein bestimmtes Filterkriterium erfüllen, in die neue Liste kommen. In unserem Beispiel ist das Kriterium n % 2 == 0. Der Operator % heißt Modulo und gibt uns den Rest, der beim Dividieren übrig bleibt. Ein Beispiel: 27 % 2 (lies: 27 Modulo 2) liefert 1, weil 27 geteilt durch 2 die Zahl 13 ergibt und als Divisionsrest 1 übrig bleibt. Mit n % 2 == 0 können wir also überprüfen, ob eine Zahl gerade ist, weil bei geraden Zahlen der Rest 0 übrig bleibt, wenn man sie durch 2 teilt.
3.14.3 Strings aneinanderhängen ohne »+«
name = f"{vorname} {nachname}" # pythonisch
Die Schreibweise mit dem formatierten String f" haben wir schon im vorherigen Kapitel in der print-Funktion verwendet. Zwar spart man sich dadurch keine Codezeilen, allerdings macht man mit dieser Schreibweise weniger Fehler, weil man in der +-Schreibweise gerne mal ein Anführungszeichen oder ein Leerzeichen vergisst.
3.14.4 Einen Wert in einer Liste suchen
for zahl in zahlen:
if zahl == 3:
gefunden = True
break
gefunden = 3 in zahlen # pythonisch
Der in-Operator prüft, ob ein Wert in einer Liste, Menge, einem Tupel oder als Key in einem Dictionary vorhanden ist. Falls ja, kommt True zurück, falls nein, False. Oft verwendet man es als if-Bedingung, z. B. if x in zahlen: (»Ist das, was in der Variablen x steht, in der Liste der Zahlen drin?«).
3.14.5 Tupelzerlegung
name = person[0] # unpythonisch
alter = person[1]
name, alter = person # pythonisch
Python ist in der Lage, Tupel automatisch auszupacken, sodass wir die darin befindlichen Werte in separate Variablen schreiben können, ohne über den Index (0, 1 …) darauf zugreifen zu müssen. Das funktioniert auch bei Listen und Mengen von Tupeln:
for person in personen: # unpythonisch
print(f"{person[0]} ist {person[1]} Jahre alt")
for name, alter in personen: # pythonisch
print(f"{name} ist {alter} Jahre alt")
3.14.6 Zähler in Schleifen
for name in namen:
print(f"Platz-Nr. {platznr}: {name}")
platznr += 1
for platznr, name in enumerate(namen, start=1): # pythonisch
print(f"Platz-Nr. {platznr}: {name}")
Die Funktion enumerate erzeugt aus unserer Namensliste ein sogenanntes Iterable, das uns in jedem Schleifendurchlauf Zugriff auf zwei Werte gibt: eine laufende Nummer, die hier bei 1 startet, und den eigentlichen Wert aus der Liste.
3.14.7 Iteration über die Key-Value-Paare in einem Dictionary
print(f"{tag} heißt {wochentage[tag]}")
for tag_de, tag_en in wochentage.items(): # pythonisch
print(f"{tag_de} heißt {tag_en}")
Auch die items-Methode erzeugt ein Iterable, das uns zwei Werte in jedem Schleifendurchlauf gibt: jeweils einen Key und den dazu passenden Value aus dem Dictionary.
3.14.8 Variablenwerte tauschen
vorname = nachname
nachname = temp
vorname, nachname = nachname, vorname #...




