Schildgen | Python für KI- und Daten-Projekte | E-Book | www.sack.de
E-Book

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



Datenanalyse für Einsteiger – mit Python und KI

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
Schildgen Python für KI- und Daten-Projekte jetzt bestellen!

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:

gefiltert = []
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:

gefiltert = [wort for wort in woerter if len(wort) >= min_len]

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


zahlen = [1, 3, 4]
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:

def wortanzahl(text):
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


gerade_zahlen = [] # unpythonisch
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 = vorname + " " + nachname # unpythonisch
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


gefunden = False # unpythonisch
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


person = ("Anna", 23)

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:

personen = [("Anna", 23), ("Peter", 37)]

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


platznr = 1 # unpythonisch
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


for tag in wochentage: # unpythonisch
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


temp = vorname # unpythonisch
vorname = nachname
nachname = temp

vorname, nachname = nachname, vorname #...


Schildgen, Johannes
Prof. Dr. Johannes Schildgen ist Professor für Datenbanken mit dem Schwerpunkt Big Data an der OTH Regensburg. Die Programmiersprache Python vermittelt er Studierenden schon seit rund einem Jahrzehnt.Als Keynote-Speaker hält er außerdem regelmäßig Vorträge zu Themen wie Digitalisierung und künstliche Intelligenz, in denen er IT-bezogene Zukunftsthemen auf unterhaltsame Weise vermittelt.



Ihre Fragen, Wünsche oder Anmerkungen
Vorname*
Nachname*
Ihre E-Mail-Adresse*
Kundennr.
Ihre Nachricht*
Lediglich mit * gekennzeichnete Felder sind Pflichtfelder.
Wenn Sie die im Kontaktformular eingegebenen Daten durch Klick auf den nachfolgenden Button übersenden, erklären Sie sich damit einverstanden, dass wir Ihr Angaben für die Beantwortung Ihrer Anfrage verwenden. Selbstverständlich werden Ihre Daten vertraulich behandelt und nicht an Dritte weitergegeben. Sie können der Verwendung Ihrer Daten jederzeit widersprechen. Das Datenhandling bei Sack Fachmedien erklären wir Ihnen in unserer Datenschutzerklärung.