Data Science mit Python (eBook)
552 Seiten
MITP Verlags GmbH & Co. KG
978-3-95845-696-9 (ISBN)
Jake VanderPlas ist seit Langem User und Entwickler von SciPy. Derzeit ist er als interdisziplinärer Forschungsdirektor an der Universität Washington tätig, führt eigene astronomische Forschungsarbeiten durch und berät dort ansässige Wissenschaftler, die in vielen verschiedenen Fachgebieten arbeiten.
Jake VanderPlas ist seit Langem User und Entwickler von SciPy. Derzeit ist er als interdisziplinärer Forschungsdirektor an der Universität Washington tätig, führt eigene astronomische Forschungsarbeiten durch und berät dort ansässige Wissenschaftler, die in vielen verschiedenen Fachgebieten arbeiten.
Cover 1
Titel 3
Impressum 4
Inhaltsverzeichnis 5
Einleitung 13
Über den Autor 18
Kapitel 1: Mehr als normales Python: IPython 19
1.1 Shell oder Notebook? 19
1.1.1 Die IPython-Shell starten 20
1.1.2 Das Jupyter-Notebook starten 20
1.2 Hilfe und Dokumentation in IPython 21
1.2.1 Mit ? auf die Dokumentation zugreifen 22
1.2.2 Mit ?? auf den Quellcode zugreifen 23
1.2.3 Module mit der Tab-Vervollständigung erkunden 24
1.3 Tastaturkürzel in der IPython-Shell 26
1.3.1 Tastaturkürzel zum Navigieren 27
1.3.2 Tastaturkürzel bei der Texteingabe 27
1.3.3 Tastaturkürzel für den Befehlsverlauf 28
1.3.4 Sonstige Tastaturkürzel 29
1.4 Magische Befehle in IPython 29
1.4.1 Einfügen von Codeblöcken mit %paste und %cpaste 29
1.4.2 Externen Code ausführen mit %run 31
1.4.3 Messung der Ausführungszeit von Code mit %timeit 31
1.4.4 Hilfe für die magischen Funktionen anzeigen mit ?, %magic und %lsmagic 32
1.5 Verlauf der Ein- und Ausgabe 32
1.5.1 Die IPython-Objekte In und Out 33
1.5.2 Der Unterstrich als Abkürzung und vorhergehende Ausgaben 34
1.5.3 Ausgaben unterdrücken 34
1.5.4 Weitere ähnliche magische Befehle 35
1.6 IPython und Shell-Befehle 35
1.6.1 Kurz vorgestellt: die Shell 36
1.6.2 Shell-Befehle in IPython 37
1.6.3 Werte mit der Shell austauschen 37
1.7 Magische Befehle für die Shell 38
1.8 Fehler und Debugging 39
1.8.1 Exceptions handhaben: %xmode 39
1.8.2 Debugging: Wenn das Lesen von Tracebacks nicht ausreicht 41
1.9 Profiling und Timing von Code 44
1.9.1 Timing von Codeschnipseln: %timeit und %time 45
1.9.2 Profiling kompletter Skripte: %prun 46
1.9.3 Zeilenweises Profiling mit %lprun 47
1.9.4 Profiling des Speicherbedarfs: %memit und %mprun 48
1.10 Weitere IPython-Ressourcen 50
1.10.1 Quellen im Internet 50
1.10.2 Bücher 50
Kapitel 2: Einführung in NumPy 51
2.1 Die Datentypen in Python 52
2.1.1 Python-Integers sind mehr als nur ganzzahlige Werte 53
2.1.2 Python-Listen sind mehr als nur einfache Listen 54
2.1.3 Arrays feststehenden Typs in Python 56
2.1.4 Arrays anhand von Listen erzeugen 56
2.1.5 Neue Arrays erzeugen 57
2.1.6 NumPys Standarddatentypen 58
2.2 Grundlagen von NumPy-Arrays 59
2.2.1 Attribute von NumPy-Arrays 60
2.2.2 Indizierung von Arrays: Zugriff auf einzelne Elemente 61
2.2.3 Slicing: Teilmengen eines Arrays auswählen 62
2.2.4 Arrays umformen 65
2.2.5 Arrays verketten und aufteilen 66
2.3 Berechnungen mit NumPy-Arrays: universelle Funktionen 68
2.3.1 Langsame Schleifen 68
2.3.2 Kurz vorgestellt: UFuncs 70
2.3.3 NumPys UFuncs im Detail 70
2.3.4 UFunc-Features für Fortgeschrittene 75
2.3.5 UFuncs: mehr erfahren 77
2.4 Aggregationen: Minimum, Maximum und alles dazwischen 77
2.4.1 Summieren der Werte eines Arrays 77
2.4.2 Minimum und Maximum 78
2.4.3 Beispiel: Durchschnittliche Größe der US-Präsidenten 80
2.5 Berechnungen mit Arrays: Broadcasting 82
2.5.1 Kurz vorgestellt: Broadcasting 82
2.5.2 Für das Broadcasting geltende Regeln 84
2.5.3 Broadcasting in der Praxis 87
2.6 Vergleiche, Maskierungen und boolesche Logik 88
2.6.1 Beispiel: Regentage zählen 89
2.6.2 Vergleichsoperatoren als UFuncs 90
2.6.3 Boolesche Arrays verwenden 91
2.6.4 Boolesche Arrays als Maskierungen 94
2.7 Fancy Indexing 97
2.7.1 Fancy Indexing im Detail 97
2.7.2 Kombinierte Indizierung 98
2.7.3 Beispiel: Auswahl zufälliger Punkte 99
2.7.4 Werte per Fancy Indexing modifizieren 101
2.7.5 Beispiel: Daten gruppieren 102
2.8 Arrays sortieren 104
2.8.1 Schnelle Sortierung in NumPy: np.sort und np.argsort 105
2.8.2 Teilsortierungen: Partitionierung 107
2.8.3 Beispiel: k nächste Nachbarn 107
2.9 Strukturierte Daten: NumPys strukturierte Arrays 112
2.9.1 Strukturierte Arrays erzeugen 113
2.9.2 Erweiterte zusammengesetzte Typen 114
2.9.3 Record-Arrays: strukturierte Arrays mit Pfiff 115
2.9.4 Weiter mit Pandas 115
Kapitel 3: Datenbearbeitung mit Pandas 117
3.1 Pandas installieren und verwenden 117
3.2 Kurz vorgestellt: Pandas-Objekte 118
3.2.1 Das Pandas-Series-Objekt 118
3.2.2 Das Pandas-DataFrame-Objekt 122
3.2.3 Das Pandas-Index-Objekt 126
3.3 Daten indizieren und auswählen 127
3.3.1 Series-Daten auswählen 127
3.3.2 DataFrame-Daten auswählen 131
3.4 Mit Pandas-Daten arbeiten 135
3.4.1 UFuncs: Indexerhaltung 136
3.4.2 UFuncs: Indexanpassung 137
3.4.3 UFuncs: Operationen mit DataFrame und Series 139
3.5 Handhabung fehlender Daten 140
3.5.1 Überlegungen zu fehlenden Daten 141
3.5.2 Fehlende Daten in Pandas 141
3.5.3 Mit null-Werten arbeiten 145
3.6 Hierarchische Indizierung 149
3.6.1 Mehrfach indizierte Series 149
3.6.2 Methoden zum Erzeugen eines MultiIndex 153
3.6.3 Indizierung und Slicing eines MultiIndex 156
3.6.4 Multi-Indizes umordnen 159
3.6.5 Datenaggregationen mit Multi-Indizes 162
3.7 Datenmengen kombinieren: concat und append 164
3.7.1 Verkettung von NumPy-Arrays 165
3.7.2 Einfache Verkettungen mit pd.concat 165
3.8 Datenmengen kombinieren: Merge und Join 169
3.8.1 Relationale Algebra 170
3.8.2 Join-Kategorien 170
3.8.3 Angabe der zu verknüpfenden Spalten 173
3.8.4 Mengenarithmetik bei Joins 176
3.8.5 Konflikte bei Spaltennamen: das Schlüsselwort suffixes 177
3.8.6 Beispiel: Daten von US-Bundesstaaten 178
3.9 Aggregation und Gruppierung 183
3.9.1 Planetendaten 183
3.9.2 Einfache Aggregationen in Pandas 184
3.9.3 GroupBy: Aufteilen, Anwenden und Kombinieren 186
3.10 Pivot-Tabellen 195
3.10.1 Gründe für Pivot-Tabellen 195
3.10.2 Pivot-Tabellen von Hand erstellen 196
3.10.3 Die Syntax von Pivot-Tabellen 197
3.10.4 Beispiel: Geburtenraten 199
3.11 Vektorisierte String-Operationen 204
3.11.1 Kurz vorgestellt: String-Operationen in Pandas 204
3.11.2 Liste der Pandas-Stringmethoden 206
3.11.3 Beispiel: Rezeptdatenbank 211
3.12 Zeitreihen verwenden 215
3.12.1 Kalenderdaten und Zeiten in Python 215
3.12.2 Zeitreihen in Pandas: Indizierung durch Zeitangaben 219
3.12.3 Datenstrukturen für Zeitreihen in Pandas 220
3.12.4 Häufigkeiten und Abstände 222
3.12.5 Resampling, zeitliches Verschieben und geglättete Statistik 224
3.12.6 Mehr erfahren 229
3.12.7 Beispiel: Visualisierung von Fahrradzählungen in Seattle 229
3.13 Leistungsstarkes Pandas: eval() und query() 236
3.13.1 Der Zweck von query() und eval(): zusammengesetzte Ausdrücke 236
3.13.2 Effiziente Operationen mit pandas.eval() 237
3.13.3 DataFrame.eval() für spaltenweise Operationen 239
3.13.4 Die DataFrame.query()-Methode 241
3.13.5 Performance: Verwendung von eval() und query() 242
3.14 Weitere Ressourcen 242
Kapitel 4: Visualisierung mit Matplotlib 245
4.1 Allgemeine Tipps zu Matplotlib 246
4.1.1 Matplotlib importieren 246
4.1.2 Stil einstellen 246
4.1.3 show() oder kein show()? – Anzeige von Diagrammen 246
4.1.4 Grafiken als Datei speichern 248
4.2 Zwei Seiten derselben Medaille 250
4.3 Einfache Liniendiagramme 251
4.3.1 Anpassen des Diagramms: Linienfarben und -stile 254
4.3.2 Anpassen des Diagramms: Begrenzungen 256
4.3.3 Diagramme beschriften 258
4.4 Einfache Streudiagramme 260
4.4.1 Streudiagramme mit plt.plot() erstellen 260
4.4.2 Streudiagramme mit plt.scatter() erstellen 263
4.4.3 plot kontra scatter: eine Anmerkung zur Effizienz 265
4.5 Visualisierung von Fehlern 265
4.5.1 Einfache Fehlerbalken 265
4.5.2 Stetige Fehler 267
4.6 Dichtediagramme und Konturdiagramme 268
4.6.1 Visualisierung einer dreidimensionalen Funktion 268
4.7 Histogramme, Binnings und Dichte 272
4.7.1 Zweidimensionale Histogramme und Binnings 274
4.8 Anpassen der Legende 277
4.8.1 Legendenelemente festlegen 279
4.8.2 Legenden mit Punktgrößen 280
4.8.3 Mehrere Legenden 282
4.9 Anpassen von Farbskalen 283
4.9.1 Farbskala anpassen 284
4.9.2 Beispiel: Handgeschriebene Ziffern 288
4.10 Untergeordnete Diagramme 290
4.10.1 plt.axes: Untergeordnete Diagramme von Hand erstellen 290
4.10.2 plt.subplot: Untergeordnete Diagramme in einem Raster anordnen 292
4.10.3 plt.subplots: Das gesamte Raster gleichzeitig ändern 293
4.10.4 plt.GridSpec: Kompliziertere Anordnungen 294
4.11 Text und Beschriftungen 296
4.11.1 Beispiel: Auswirkungen von Feiertagen auf die Geburtenzahlen in den USA 296
4.11.2 Transformationen und Textposition 299
4.11.3 Pfeile und Beschriftungen 300
4.12 Achsenmarkierungen anpassen 303
4.12.1 Vorrangige und nachrangige Achsenmarkierungen 304
4.12.2 Markierungen oder Beschriftungen verbergen 305
4.12.3 Anzahl der Achsenmarkierungen verringern oder erhöhen 306
4.12.4 Formatierung der Achsenmarkierungen 307
4.12.5 Zusammenfassung der Formatter- und Locator-Klassen 310
4.13 Matplotlib anpassen: Konfigurationen und Stylesheets 311
4.13.1 Diagramme von Hand anpassen 311
4.13.2 Voreinstellungen ändern: rcParams 312
4.13.3 Stylesheets 314
4.14 Dreidimensionale Diagramme in Matplotlib 318
4.14.1 Dreidimensionale Punkte und Linien 319
4.14.2 Dreidimensionale Konturdiagramme 320
4.14.3 Drahtgitter- und Oberflächendiagramme 322
4.14.4 Triangulation von Oberflächen 323
4.15 Basemap: geografische Daten verwenden 326
4.15.1 Kartenprojektionen 328
4.15.2 Zeichnen eines Kartenhintergrunds 332
4.15.3 Daten auf einer Karte anzeigen 334
4.15.4 Beispiel: Kalifornische Städte 335
4.15.5 Beispiel: Oberflächentemperaturen 337
4.16 Visualisierung mit Seaborn 339
4.16.1 Seaborn kontra Matplotlib 339
4.16.2 Seaborn-Diagramme 341
4.17 Weitere Ressourcen 357
4.17.1 Matplotlib 357
4.17.2 Weitere Grafikbibliotheken für Python 357
Kapitel 5: Machine Learning 359
5.1 Was ist Machine Learning? 360
5.1.1 Kategorien des Machine Learnings 360
5.1.2 Qualitative Beispiele für Machine-Learning-Anwendungen 361
5.1.3 Zusammenfassung 369
5.2 Kurz vorgestellt: Scikit-Learn 369
5.2.1 Datenrepräsentierung in Scikit-Learn 370
5.2.2 Scikit-Learns Schätzer-API 372
5.2.3 Anwendung: Handgeschriebene Ziffern untersuchen 380
5.2.4 Zusammenfassung 385
5.3 Hyperparameter und Modellvalidierung 385
5.3.1 Überlegungen zum Thema Modellvalidierung 385
5.3.2 Auswahl des besten Modells 389
5.3.3 Lernkurven 396
5.3.4 Validierung in der Praxis: Rastersuche 399
5.3.5 Zusammenfasssung 401
5.4 Merkmalserstellung 401
5.4.1 Kategoriale Merkmale 402
5.4.2 Texte als Merkmale 403
5.4.3 Bilder als Merkmale 404
5.4.4 Abgeleitete Merkmale 405
5.4.5 Vervollständigung fehlender Daten 407
5.4.6 Pipelines mit Merkmalen 408
5.5 Ausführlich: Naive Bayes-Klassifikation 409
5.5.1 Bayes-Klassifikation 409
5.5.2 Gauß’sche naive Bayes-Klassifikation 410
5.5.3 Multinomiale naive Bayes-Klassifikation 413
5.5.4 Einsatzgebiete für naive Bayes-Klassifikation 416
5.6 Ausführlich: Lineare Regression 417
5.6.1 Einfache lineare Regression 417
5.6.2 Regression der Basisfunktion 419
5.6.3 Regularisierung 423
5.6.4 Beispiel: Vorhersage des Fahrradverkehrs 427
5.7 Ausführlich: Support Vector Machines 432
5.7.1 Gründe für Support Vector Machines 433
5.7.2 Support Vector Machines: Maximierung des Randbereichs 434
5.7.3 Beispiel: Gesichtserkennung 443
5.7.4 Zusammenfassung Support Vector Machines 447
5.8 Ausführlich: Entscheidungsbäume und Random Forests 448
5.8.1 Gründe für Random Forests 448
5.8.2 Schätzerensembles: Random Forests 454
5.8.3 Random-Forest-Regression 455
5.8.4 Beispiel: Random Forest zur Klassifikation handgeschriebener Ziffern 457
5.8.5 Zusammenfassung Random Forests 459
5.9 Ausführlich: Hauptkomponentenanalyse 460
5.9.1 Kurz vorgestellt: Hauptkomponentenanalyse 460
5.9.2 Hauptkomponentenanalyse als Rauschfilter 467
5.9.3 Beispiel: Eigengesichter 469
5.9.4 Zusammenfassung Hauptkomponentenanalyse 472
5.10 Ausführlich: Manifold Learning 473
5.10.1 Manifold Learning: »HELLO« 473
5.10.2 Multidimensionale Skalierung (MDS) 475
5.10.3 MDS als Manifold Learning 477
5.10.4 Nichtlineare Einbettungen: Wenn MDS nicht funktioniert 479
5.10.5 Nichtlineare Mannigfaltigkeiten: lokal lineare Einbettung 480
5.10.6 Überlegungen zum Thema Manifold-Methoden 482
5.10.7 Beispiel: Isomap und Gesichter 483
5.10.8 Beispiel: Visualisierung der Strukturen in Zifferndaten 487
5.11 Ausführlich: k-Means-Clustering 490
5.11.1 Kurz vorgestellt: der k-Means-Algorithmus 490
5.11.2 k-Means-Algorithmus: Expectation-Maximization 492
5.11.3 Beispiele 497
5.12 Ausführlich: Gauß’sche Mixture-Modelle 503
5.12.1 Gründe für GMM: Schwächen von k-Means 503
5.12.2 EM-Verallgemeinerung: Gauß’sche Mixture-Modelle 507
5.12.3 GMM als Dichteschätzung 511
5.12.4 Beispiel: GMM zum Erzeugen neuer Daten verwenden 515
5.13 Ausführlich: Kerndichteschätzung 518
5.13.1 Gründe für Kerndichteschätzung: Histogramme 518
5.13.2 Kerndichteschätzung in der Praxis 522
5.13.3 Beispiel: Kerndichteschätzung auf Kugeloberflächen 524
5.13.4 Beispiel: Nicht ganz so naive Bayes-Klassifikation 527
5.14 Anwendung: Eine Gesichtserkennungs-Pipeline 532
5.14.1 HOG-Merkmale 533
5.14.2 HOG in Aktion: eine einfache Gesichtserkennung 534
5.14.3 Vorbehalte und Verbesserungen 539
5.15 Weitere Machine-Learning-Ressourcen 541
5.15.1 Machine Learning in Python 541
5.15.2 Machine Learning im Allgemeinen 541
Stichwortverzeichnis 543
Erscheint lt. Verlag | 21.11.2017 |
---|---|
Reihe/Serie | mitp Business |
Sprache | deutsch |
Themenwelt | Mathematik / Informatik ► Informatik ► Netzwerke |
Schlagworte | Algorithmen • Big Data • Data Scientist • Datenanalyse • NumPy • Pandas • SciPy • Sentiment Analyse • sentiment analysis |
ISBN-10 | 3-95845-696-0 / 3958456960 |
ISBN-13 | 978-3-95845-696-9 / 9783958456969 |
Haben Sie eine Frage zum Produkt? |
Größe: 15,6 MB
Digital Rights Management: ohne DRM
Dieses eBook enthält kein DRM oder Kopierschutz. Eine Weitergabe an Dritte ist jedoch rechtlich nicht zulässig, weil Sie beim Kauf nur die Rechte an der persönlichen Nutzung erwerben.
Dateiformat: PDF (Portable Document Format)
Mit einem festen Seitenlayout eignet sich die PDF besonders für Fachbücher mit Spalten, Tabellen und Abbildungen. Eine PDF kann auf fast allen Geräten angezeigt werden, ist aber für kleine Displays (Smartphone, eReader) nur eingeschränkt geeignet.
Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen dafür einen PDF-Viewer - z.B. den Adobe Reader oder Adobe Digital Editions.
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen dafür einen PDF-Viewer - z.B. die kostenlose Adobe Digital Editions-App.
Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.
aus dem Bereich