dummies
 

Suchen und Finden

Titel

Autor/Verlag

Inhaltsverzeichnis

Nur ebooks mit Firmenlizenz anzeigen:

 

Data Science mit Python - Das Handbuch für den Einsatz von IPython, Jupyter, NumPy, Pandas, Matplotlib und Scikit-Learn

Jake VanderPlas

 

Verlag mitp Verlags GmbH & Co. KG, 2017

ISBN 9783958456969 , 552 Seiten

Format PDF

Kopierschutz frei

Geräte

19,99 EUR

Für Firmen: Nutzung über Internet und Intranet (ab 2 Exemplaren) freigegeben

Derzeit können über den Shop maximal 500 Exemplare bestellt werden. Benötigen Sie mehr Exemplare, nehmen Sie bitte Kontakt mit uns auf.


 

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