Numerisches Python - Arbeiten mit NumPy, Matplotlib und Pandas

Bernd Klein

Numerisches Python

Arbeiten mit NumPy, Matplotlib und Pandas

2019

373 Seiten

Format: PDF, ePUB, Online Lesen

E-Book: €  29,99

E-Book kaufen

E-Book kaufen

ISBN: 9783446453630

 

Inhalt

6

Vorwort

16

Danksagung

17

1 Einleitung

18

1.1 Die richtige Wahl

18

1.2 Aufbau des Buches

19

1.3 Python-Installation

20

1.4 Download der Beispiele

20

1.5 Anregungen und Kritik

20

2 Numerisches Programmieren mit Python

22

2.1 Definition von numerischer Programmierung

22

2.2 Zusammenhang zwischen Python, NumPy, Matplotlib, SciPy und Pandas

23

2.3 Python, eine Alternative zu Matlab

24

Teil I Kurze Einführung in Python

26

3 Kurze Einführung in Python

28

3.1 Datenstrukturen

28

3.1.1 Zahlen und Variablen

28

3.1.2 Zeichenketten

29

3.1.3 Listen

32

3.1.4 Tupel

33

3.1.5 Frozensets und Mengen in Python

34

3.1.6 Dictionaries

35

3.2 Kontrollstrukturen

36

3.2.1 Bedingte Anweisungen

36

3.2.2 Schleifen

37

3.2.3 Funktionen

40

3.3 Ausnahmebehandlung

43

3.3.1 Die optionale else-Klausel

46

3.3.2 Exceptions generieren

46

3.3.3 Finalisierungsaktion

46

3.4 Dateien lesen und schreiben

47

3.4.1 Datei lesen

47

3.4.2 Datei schreiben

48

3.5 Modularisierung

49

3.5.1 Namensräume von Modulen

49

3.5.2 Suchpfad für Module

50

3.5.3 Inhalt eines Moduls

50

3.5.4 Eigene Module

50

3.5.5 Dokumentation für eigene Module

51

3.6 Klassen-Definition

52

3.6.1 Eine einfache Klasse

52

3.6.2 Attribute

52

3.6.3 Initialisierung von Instanzen

54

3.6.4 Vererbung

54

3.6.5 Private, geschützte und öffentliche Attribute

55

3.6.6 Properties

56

Teil II NumPy

58

4 NumPy Einführung

60

4.1 Überblick

60

4.2 Vergleich NumPy-Datenstrukturen und Python

61

4.3 Ein einfaches Beispiel

61

4.4 Grafische Darstellung der Werte

62

4.5 Speicherbedarf

63

4.6 Zeitvergleich zwischen Python-Listen und NumPy-Arrays

66

5 Arrays in NumPy erzeugen

68

5.1 Erzeugung äquidistanter Intervalle

68

5.1.1 arange

68

5.1.2 linspace

69

5.1.3 Nulldimensionale Arrays in NumPy

70

5.1.4 Eindimensionales Array

70

5.1.5 Zwei- und Mehrdimensionale Arrays

71

5.2 Shape/Gestalt eines Arrays

71

5.3 Indizierung und Teilbereichsoperator

73

5.4 Dreidimensionale Arrays

78

5.5 Arrays mit Nullen und Einsen

81

5.6 Arrays kopieren

82

5.6.1 numpy.copy(A) und A.copy()

82

5.6.2 Zusammenhängend gespeicherte Arrays

82

5.7 Identitätsarray

84

5.7.1 Die identity-Funktion

84

5.7.2 Die eye-Funktion

85

5.8 Aufgaben

86

5.9 Lösungen

87

6 Datentyp-Objekt: dtype

90

6.1 dtype

90

6.2 Strukturierte Arrays

92

6.3 Ein- und Ausgabe von strukturierten Arrays

94

6.4 Unicode-Strings in Arrays

96

6.5 Umbenennen von Spaltennamen

96

6.6 Spaltenwerte austauschen

97

6.7 Komplexeres Beispiel

97

6.8 Aufgaben

99

6.9 Lösungen

100

7 Dimensionsänderungen

102

7.1 Reduktion und Reshape von Arrays

102

7.1.1 flatten

103

7.1.2 ravel

103

7.1.3 Unterschiede zwischen ravel und flatten

104

7.1.4 reshape

105

7.2 Konkatenation von Arrays

106

7.3 Weitere Dimensionen hinzufügen

107

7.4 Vektoren stapeln

108

7.5 Fliesen mit tile

109

8 Numerische Operationen auf NumPy-Arrays

112

8.1 Operatoren und Skalare

112

8.2 Arithmetische Operationen auf zwei Arrays

114

8.3 Matrizenmultiplikation und Skalarprodukt

115

8.3.1 Definition der dot-Funktion

115

8.3.2 Beispiele zur dot-Funktion

115

8.3.3 Das dot-Produkt im 3-dimensionalen Fall

117

8.4 Vergleichsoperatoren

122

8.5 Logische Operatoren

123

8.6 Broadcasting

123

8.6.1 Zeilenweises Broadcasting

124

8.6.2 Spaltenweises Broadcasting:

126

8.6.3 Broadcasting von zwei eindimensionalen Arrays

127

8.7 Distanzmatrix

128

8.8 Ufuncs

129

8.8.1 Anwendung von Ufuncs

129

8.8.2 Parameter für Rückgabewerte bei Ufuncs

131

8.8.3 accumulate

132

8.8.4 reduce

133

8.8.5 outer

134

8.8.6 at

135

8.9 Aufgaben

135

8.10 Lösungen

136

9 Statistik und Wahrscheinlichkeiten

138

9.1 Einführung

138

9.2 Zufallszahlen mit Python

139

9.2.1 Die Module random und secrets

139

9.2.2 Erzeugen einer Liste von Zufallszahlen

139

9.3 Zufällige Integer-Zahlen mit Python

140

9.4 Stichproben/Auswahlen

143

9.5 Zufallsintervalle

144

9.6 Gewichtete Zufallsauswahl

145

9.7 Stichproben mit Python

147

9.8 Kartesische Auswahl

149

9.8.1 Kartesisches Produkt

149

9.8.2 Kartesische Auswahl: cartesian_choice

150

9.9 Echte Zufallszahlen

152

9.10 Seed/Startwert

153

9.11 Gauss'sche Normalverteilung

154

9.12 Übung mit Binärsender

156

9.13 Synthetische Verkaufszahlen

158

9.14 Aufgaben

160

9.15 Lösungen

162

10 Boolesche Maskierung und Indizierung

168

10.1 Fancy-Indizierung

170

10.2 Indizierung mit einem Integer-Array

170

10.2.1 Übung

171

10.2.2 Lösung

171

10.3 nonzero und where

171

10.3.1 Übung

172

10.3.2 Lösung

173

10.3.3 Flatnonzero und count_nonzero

173

11 Lesen und Schreiben von Datendateien

174

11.1 Textdateien speichern mit savetxt

174

11.2 Textdateien laden mit loadtxt

176

11.2.1 loadtxt ohne Parameter

176

11.2.2 Spezielle Trenner

176

11.2.3 Selektives Einlesen von Spalten

176

11.2.4 Datenkonvertierung beim Einlesen

177

11.3 tofile

178

11.4 fromfile

179

11.5 Best Practice, um Daten zu laden und zu speichern

181

11.6 Und noch ein anderer Weg: genfromtxt

181

Teil III Matplotlib

182

12 Einführung

184

12.1 Ein erstes Beispiel

185

12.2 Der Formatparameter von pyplot.plot

186

12.3 Bezeichnungen für die Achsen

189

12.4 Abfragen und Ändern des Wertebereichs der Achsen

191

12.5 linspace zur Definition von X-Werten

192

12.6 Linienstil ändern

194

12.7 Flächen einfärben

195

13 Achsen- und Skalenteilung

198

13.1 Achsenverschiebungen und Achsenbezeichnungen

198

13.2 Verändern der Achsenbeschriftungen

203

13.3 Justierung der Tick-Beschriftungen

204

14 Legenden und Kommentare hinzufügen

206

14.1 Legende hinzufügen

206

14.2 Kommentare

211

15 Mehrfache Plots und Doppelachsen

216

15.1 Mehrere Abbildungen und Achsen

216

15.2 Unterdiagramm mit gridspec

225

15.3 Arbeiten mit Objekten

228

15.4 Ein Plot innerhalb eines anderen Plots

230

15.5 Setzen des Plotbereichs

231

15.6 Logarithmische Darstellung

232

15.7 Sekundäre Y-Achse

233

15.8 Gitterlinien

234

15.9 Abbildungen speichern

235

15.10 Aufgaben

236

15.11 Lösungen

236

16 Konturplots

240

16.1 Erstellen eines Maschengitters

240

16.2 Berechnung der Werte

242

16.3 Linienstil und Farben anpassen

244

16.4 Gefüllte Konturen

245

16.5 Individuelle Farben

246

16.6 Schwellen

247

16.7 Andere Grids

248

16.7.1 Meshgrid genauer

248

16.7.2 mgrid

252

16.7.3 ogrid

252

16.8 Aufgaben

253

16.9 Lösungen

254

17 Balken-, Säulendiagramme und Histogramme

258

17.1 Histogramme

258

17.2 Säulendiagramm

264

17.3 Balkendiagramme

266

17.4 Aufgaben

267

17.5 Lösung

267

Teil IV Pandas

268

18 Einführung in Pandas

270

18.1 Datenstrukturen

270

18.2 Series

271

18.2.1 Indizierung

273

18.2.2 pandas.Series.apply

274

18.2.3 Zusammenhang zu Dictionaries

275

18.3 NaN – Fehlende Daten

275

18.3.1 Die Methoden isnull() und notnull()

276

18.3.2 Zusammenhang zwischen NaN und None

277

18.3.3 Fehlende Daten filtern

277

18.3.4 Fehlende Daten auffüllen

278

19 DataFrame

280

19.1 Zusammenhang zu Series

280

19.2 Manipulation der Spaltennamen

281

19.3 Zugriff auf Spalten

282

19.4 DataFrames aus Dictionaries

283

19.5 Index ändern

284

19.5.1 Umsortierung der Spalten

284

19.5.2 Spalte in Index umfunktionieren

286

19.6 Selektion von Zeilen

287

19.7 Summen und kumulative Summen

288

19.8 Spaltenwerte ersetzen

288

19.9 Sortierung

290

19.10 Spalten einfügen

291

19.11 DataFrame und verschachtelte Dictionaries

292

19.12 Aufgaben

293

19.13 Lösungen

295

20 Dateien lesen und schreiben

300

20.1 Trennerseparierte Werte

300

20.2 CSV- und DSV-Dateien lesen

301

20.3 Schreiben von CSV-Dateien

302

20.4 Lesen und Schreiben von Excel-Dateien

304

20.5 Aufgaben

305

20.6 Lösungen

305

21 Umgang mit NaN

308

21.1 'nan' in Python

308

21.2 NaN in Pandas

309

21.2.1 Beispiel mit NaNs

311

21.3 dropna() verwenden

312

21.4 Aufgaben

314

21.5 Lösungen

314

22 Binning

316

22.1 Einführung

316

22.2 Binning mit Pandas

318

22.2.1 Von Pandas verwendete Bins

318

22.2.2 Andere Wege, um Bins zu definieren

319

22.2.3 Bins und Werte zählen

320

22.2.4 Bins benennen

322

23 Mehrstufige Indizierung

324

23.1 Einführung

324

23.2 Mehrstufig indizierte Series

324

23.3 Zugriffsmöglichkeiten

326

23.4 Zusammenhang zu DataFrames

327

23.5 Dreistufige Indizes

329

23.6 Vertauschen mehrstufiger Indizes

331

23.7 Aufgaben

332

23.8 Lösungen

333

24 Datenvisualisierung mit Pandas

334

24.1 Einführung

334

24.2 Liniendiagramme in Pandas

335

24.2.1 Series

335

24.2.2 DataFrames

337

24.2.3 Sekundärachsen (Twin Axes)

339

24.2.4 Mehrere Y-Achsen

340

24.3 Ein komplexeres Beispiel

342

24.3.1 Spalten mit Zeichenketten (Strings) in Floats wandeln

345

24.4 Balkendiagramme in Pandas

346

24.4.1 Ein einfaches Beispiel

346

24.4.2 Balkengrafik für die Programmiersprachennutzung

347

24.4.3 Farbgebung einer Balkengrafik

348

24.5 Kuchendiagramme in Pandas

349

24.5.1 Ein einfaches Beispiel

349

25 Zeit und Datum

354

25.1 Einführung

354

25.2 Python-Standardmodule für Zeitdaten

355

25.2.1 Die date-Klasse

355

25.2.2 Die time-Klasse

356

25.3 Die datetime-Klasse

357

25.4 Unterschied zwischen Zeiten

359

25.4.1 Wandlung von datetime-Objekten in Strings

360

25.4.2 Wandlung mit strftime

360

25.5 Ausgabe in Landessprache

361

25.6 datetime-Objekte aus Strings erstellen

362

26 Zeitserien

364

26.1 Einführung

364

26.2 Zeitreihen und Python

364

26.3 Datumsbereiche erstellen

367

Stichwortverzeichnis

370

 

© 2009-2024 ciando GmbH