Data Science mit Python

Das Handbuch für den Einsatz von IPython, Jupyter, NumPy, Pandas, Matplotlib und Scikit-Learn
 
 
MITP (Verlag)
  • 1. Auflage
  • |
  • erschienen am 30. November 2017
  • |
  • 552 Seiten
 
E-Book | ePUB mit Wasserzeichen-DRM | Systemvoraussetzungen
978-3-95845-697-6 (ISBN)
 
Die wichtigsten Tools für die Datenanalyse und-bearbeitung im praktischen Einsatz
Python effizient für datenintensive Berechnungen einsetzen mit IPython und Jupyter
Laden, Speichern und Bearbeiten von Daten und numerischen Arrays mit NumPy und Pandas
Visualisierung von Daten mit Matplotlib



Python ist für viele die erste Wahl für Data Science, weil eine Vielzahl von Ressourcen und Bibliotheken zum Speichern, Bearbeiten und Auswerten von Daten verfügbar ist. In diesem Buch erläutert der Autor den Einsatz der wichtigsten Tools.
Für Datenanalytiker und Wissenschaftler ist dieses umfassende Handbuch von unschätzbarem Wert für jede Art von Berechnung mit Python sowie bei der Erledigung alltäglicher Aufgaben. Dazu gehören das Bearbeiten, Umwandeln und Bereinigen von Daten, die Visualisierung verschiedener Datentypen und die Nutzung von Daten zum Erstellen von Statistiken oder Machine-Learning-Modellen.
Dieses Handbuch erläutert die Verwendung der folgenden Tools:

IPython und Jupyter für datenintensive Berechnungen
NumPy und Pandas zum effizienten Speichern und Bearbeiten von Daten und Datenarrays in Python
Matplotlib für vielfältige Möglichkeiten der Visualisierung von Daten
Scikit-Learn zur effizienten und sauberen Implementierung der wichtigsten und am meisten verbreiteten Algorithmen des Machine Learnings

Der Autor zeigt Ihnen, wie Sie die zum Betreiben von Data Science verfügbaren Pakete nutzen, um Daten effektiv zu speichern, zu handhaben und Einblick in diese Daten zu gewinnen. Grundlegende Kenntnisse in Python werden dabei vorausgesetzt.

Leserstimme zum Buch:
»Wenn Sie Data Science mit Python betreiben möchten, ist dieses Buch ein hervorragender Ausgangspunkt. Ich habe es sehr erfolgreich beim Unterrichten von Informatik- und Statistikstudenten eingesetzt. Jake geht weit
über die Grundlagen der Open-Source-Tools hinaus und erläutert die grundlegenden Konzepte, Vorgehensweisen und Abstraktionen in klarer Sprache und mit verständlichen Erklärungen.«
- Brian Granger, Physikprofessor, California Polytechnic State University, Mitbegründer des Jupyter-Projekts
2018
  • Deutsch
  • Frechen
  • |
  • Deutschland
  • 12,95 MB
978-3-95845-697-6 (9783958456976)
3958456979 (3958456979)
weitere Ausgaben werden ermittelt
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.
  • Intro
  • Impressum
  • Einleitung
  • Über den Autor
  • Kapitel 1: Mehr als normales Python: IPython
  • 1.1 Shell oder Notebook?
  • 1.1.1 Die IPython-Shell starten
  • 1.1.2 Das Jupyter-Notebook starten
  • 1.2 Hilfe und Dokumentation in IPython
  • 1.2.1 Mit ? auf die Dokumentation zugreifen
  • 1.2.2 Mit ?? auf den Quellcode zugreifen
  • 1.2.3 Module mit der Tab-Vervollständigung erkunden
  • 1.3 Tastaturkürzel in der IPython-Shell
  • 1.3.1 Tastaturkürzel zum Navigieren
  • 1.3.2 Tastaturkürzel bei der Texteingabe
  • 1.3.3 Tastaturkürzel für den Befehlsverlauf
  • 1.3.4 Sonstige Tastaturkürzel
  • 1.4 Magische Befehle in IPython
  • 1.4.1 Einfügen von Codeblöcken mit %paste und %cpaste
  • 1.4.2 Externen Code ausführen mit %run
  • 1.4.3 Messung der Ausführungszeit von Code mit %timeit
  • 1.4.4 Hilfe für die magischen Funktionen anzeigen mit ?, %magic und %lsmagic
  • 1.5 Verlauf der Ein- und Ausgabe
  • 1.5.1 Die IPython-Objekte In und Out
  • 1.5.2 Der Unterstrich als Abkürzung und vorhergehende Ausgaben
  • 1.5.3 Ausgaben unterdrücken
  • 1.5.4 Weitere ähnliche magische Befehle
  • 1.6 IPython und Shell-Befehle
  • 1.6.1 Kurz vorgestellt: die Shell
  • 1.6.2 Shell-Befehle in IPython
  • 1.6.3 Werte mit der Shell austauschen
  • 1.7 Magische Befehle für die Shell
  • 1.8 Fehler und Debugging
  • 1.8.1 Exceptions handhaben: %xmode
  • 1.8.2 Debugging: Wenn das Lesen von Tracebacks nicht ausreicht
  • 1.9 Profiling und Timing von Code
  • 1.9.1 Timing von Codeschnipseln: %timeit und %time
  • 1.9.2 Profiling kompletter Skripte: %prun
  • 1.9.3 Zeilenweises Profiling mit %lprun
  • 1.9.4 Profiling des Speicherbedarfs: %memit und %mprun
  • 1.10 Weitere IPython-Ressourcen
  • 1.10.1 Quellen im Internet
  • 1.10.2 Bücher
  • Kapitel 2: Einführung in NumPy
  • 2.1 Die Datentypen in Python
  • 2.1.1 Python-Integers sind mehr als nur ganzzahlige Werte
  • 2.1.2 Python-Listen sind mehr als nur einfache Listen
  • 2.1.3 Arrays feststehenden Typs in Python
  • 2.1.4 Arrays anhand von Listen erzeugen
  • 2.1.5 Neue Arrays erzeugen
  • 2.1.6 NumPys Standarddatentypen
  • 2.2 Grundlagen von NumPy-Arrays
  • 2.2.1 Attribute von NumPy-Arrays
  • 2.2.2 Indizierung von Arrays: Zugriff auf einzelne Elemente
  • 2.2.3 Slicing: Teilmengen eines Arrays auswählen
  • 2.2.4 Arrays umformen
  • 2.2.5 Arrays verketten und aufteilen
  • 2.3 Berechnungen mit NumPy-Arrays: universelle Funktionen
  • 2.3.1 Langsame Schleifen
  • 2.3.2 Kurz vorgestellt: UFuncs
  • 2.3.3 NumPys UFuncs im Detail
  • 2.3.4 UFunc-Features für Fortgeschrittene
  • 2.3.5 UFuncs: mehr erfahren
  • 2.4 Aggregationen: Minimum, Maximum und alles dazwischen
  • 2.4.1 Summieren der Werte eines Arrays
  • 2.4.2 Minimum und Maximum
  • 2.4.3 Beispiel: Durchschnittliche Größe der US-Präsidenten
  • 2.5 Berechnungen mit Arrays: Broadcasting
  • 2.5.1 Kurz vorgestellt: Broadcasting
  • 2.5.2 Für das Broadcasting geltende Regeln
  • 2.5.3 Broadcasting in der Praxis
  • 2.6 Vergleiche, Maskierungen und boolesche Logik
  • 2.6.1 Beispiel: Regentage zählen
  • 2.6.2 Vergleichsoperatoren als UFuncs
  • 2.6.3 Boolesche Arrays verwenden
  • 2.6.4 Boolesche Arrays als Maskierungen
  • 2.7 Fancy Indexing
  • 2.7.1 Fancy Indexing im Detail
  • 2.7.2 Kombinierte Indizierung
  • 2.7.3 Beispiel: Auswahl zufälliger Punkte
  • 2.7.4 Werte per Fancy Indexing modifizieren
  • 2.7.5 Beispiel: Daten gruppieren
  • 2.8 Arrays sortieren
  • 2.8.1 Schnelle Sortierung in NumPy: np.sort und np.argsort
  • 2.8.2 Teilsortierungen: Partitionierung
  • 2.8.3 Beispiel: k nächste Nachbarn
  • 2.9 Strukturierte Daten: NumPys strukturierte Arrays
  • 2.9.1 Strukturierte Arrays erzeugen
  • 2.9.2 Erweiterte zusammengesetzte Typen
  • 2.9.3 Record-Arrays: strukturierte Arrays mit Pfiff
  • 2.9.4 Weiter mit Pandas
  • Kapitel 3: Datenbearbeitung mit Pandas
  • 3.1 Pandas installieren und verwenden
  • 3.2 Kurz vorgestellt: Pandas-Objekte
  • 3.2.1 Das Pandas-Series-Objekt
  • 3.2.2 Das Pandas-DataFrame-Objekt
  • 3.2.3 Das Pandas-Index-Objekt
  • 3.3 Daten indizieren und auswählen
  • 3.3.1 Series-Daten auswählen
  • 3.3.2 DataFrame-Daten auswählen
  • 3.4 Mit Pandas-Daten arbeiten
  • 3.4.1 UFuncs: Indexerhaltung
  • 3.4.2 UFuncs: Indexanpassung
  • 3.4.3 UFuncs: Operationen mit DataFrame und Series
  • 3.5 Handhabung fehlender Daten
  • 3.5.1 Überlegungen zu fehlenden Daten
  • 3.5.2 Fehlende Daten in Pandas
  • 3.5.3 Mit null-Werten arbeiten
  • 3.6 Hierarchische Indizierung
  • 3.6.1 Mehrfach indizierte Series
  • 3.6.2 Methoden zum Erzeugen eines MultiIndex
  • 3.6.3 Indizierung und Slicing eines MultiIndex
  • 3.6.4 Multi-Indizes umordnen
  • 3.6.5 Datenaggregationen mit Multi-Indizes
  • 3.7 Datenmengen kombinieren: concat und append
  • 3.7.1 Verkettung von NumPy-Arrays
  • 3.7.2 Einfache Verkettungen mit pd.concat
  • 3.8 Datenmengen kombinieren: Merge und Join
  • 3.8.1 Relationale Algebra
  • 3.8.2 Join-Kategorien
  • 3.8.3 Angabe der zu verknüpfenden Spalten
  • 3.8.4 Mengenarithmetik bei Joins
  • 3.8.5 Konflikte bei Spaltennamen: das Schlüsselwort suffixes
  • 3.8.6 Beispiel: Daten von US-Bundesstaaten
  • 3.9 Aggregation und Gruppierung
  • 3.9.1 Planetendaten
  • 3.9.2 Einfache Aggregationen in Pandas
  • 3.9.3 GroupBy: Aufteilen, Anwenden und Kombinieren
  • 3.10 Pivot-Tabellen
  • 3.10.1 Gründe für Pivot-Tabellen
  • 3.10.2 Pivot-Tabellen von Hand erstellen
  • 3.10.3 Die Syntax von Pivot-Tabellen
  • 3.10.4 Beispiel: Geburtenraten
  • 3.11 Vektorisierte String-Operationen
  • 3.11.1 Kurz vorgestellt: String-Operationen in Pandas
  • 3.11.2 Liste der Pandas-Stringmethoden
  • 3.11.3 Beispiel: Rezeptdatenbank
  • 3.12 Zeitreihen verwenden
  • 3.12.1 Kalenderdaten und Zeiten in Python
  • 3.12.2 Zeitreihen in Pandas: Indizierung durch Zeitangaben
  • 3.12.3 Datenstrukturen für Zeitreihen in Pandas
  • 3.12.4 Häufigkeiten und Abstände
  • 3.12.5 Resampling, zeitliches Verschieben und geglättete Statistik
  • 3.12.6 Mehr erfahren
  • 3.12.7 Beispiel: Visualisierung von Fahrradzählungen in Seattle
  • 3.13 Leistungsstarkes Pandas: eval() und query()
  • 3.13.1 Der Zweck von query() und eval(): zusammengesetzte Ausdrücke
  • 3.13.2 Effiziente Operationen mit pandas.eval()
  • 3.13.3 DataFrame.eval() für spaltenweise Operationen
  • 3.13.4 Die DataFrame.query()-Methode
  • 3.13.5 Performance: Verwendung von eval() und query()
  • 3.14 Weitere Ressourcen
  • Kapitel 4: Visualisierung mit Matplotlib
  • 4.1 Allgemeine Tipps zu Matplotlib
  • 4.1.1 Matplotlib importieren
  • 4.1.2 Stil einstellen
  • 4.1.3 show() oder kein show()? - Anzeige von Diagrammen
  • 4.1.4 Grafiken als Datei speichern
  • 4.2 Zwei Seiten derselben Medaille
  • 4.3 Einfache Liniendiagramme
  • 4.3.1 Anpassen des Diagramms: Linienfarben und -stile
  • 4.3.2 Anpassen des Diagramms: Begrenzungen
  • 4.3.3 Diagramme beschriften
  • 4.4 Einfache Streudiagramme
  • 4.4.1 Streudiagramme mit plt.plot() erstellen
  • 4.4.2 Streudiagramme mit plt.scatter() erstellen
  • 4.4.3 plot kontra scatter: eine Anmerkung zur Effizienz
  • 4.5 Visualisierung von Fehlern
  • 4.5.1 Einfache Fehlerbalken
  • 4.5.2 Stetige Fehler
  • 4.6 Dichtediagramme und Konturdiagramme
  • 4.6.1 Visualisierung einer dreidimensionalen Funktion
  • 4.7 Histogramme, Binnings und Dichte
  • 4.7.1 Zweidimensionale Histogramme und Binnings
  • 4.8 Anpassen der Legende
  • 4.8.1 Legendenelemente festlegen
  • 4.8.2 Legenden mit Punktgrößen
  • 4.8.3 Mehrere Legenden
  • 4.9 Anpassen von Farbskalen
  • 4.9.1 Farbskala anpassen
  • 4.9.2 Beispiel: Handgeschriebene Ziffern
  • 4.10 Untergeordnete Diagramme
  • 4.10.1 plt.axes: Untergeordnete Diagramme von Hand erstellen
  • 4.10.2 plt.subplot: Untergeordnete Diagramme in einem Raster anordnen
  • 4.10.3 plt.subplots: Das gesamte Raster gleichzeitig ändern
  • 4.10.4 plt.GridSpec: Kompliziertere Anordnungen
  • 4.11 Text und Beschriftungen
  • 4.11.1 Beispiel: Auswirkungen von Feiertagen auf die Geburtenzahlen in den USA
  • 4.11.2 Transformationen und Textposition
  • 4.11.3 Pfeile und Beschriftungen
  • 4.12 Achsenmarkierungen anpassen
  • 4.12.1 Vorrangige und nachrangige Achsenmarkierungen
  • 4.12.2 Markierungen oder Beschriftungen verbergen
  • 4.12.3 Anzahl der Achsenmarkierungen verringern oder erhöhen
  • 4.12.4 Formatierung der Achsenmarkierungen
  • 4.12.5 Zusammenfassung der Formatter- und Locator-Klassen
  • 4.13 Matplotlib anpassen: Konfigurationen und Stylesheets
  • 4.13.1 Diagramme von Hand anpassen
  • 4.13.2 Voreinstellungen ändern: rcParams
  • 4.13.3 Stylesheets
  • 4.14 Dreidimensionale Diagramme in Matplotlib
  • 4.14.1 Dreidimensionale Punkte und Linien
  • 4.14.2 Dreidimensionale Konturdiagramme
  • 4.14.3 Drahtgitter- und Oberflächendiagramme
  • 4.14.4 Triangulation von Oberflächen
  • 4.15 Basemap: geografische Daten verwenden
  • 4.15.1 Kartenprojektionen
  • 4.15.2 Zeichnen eines Kartenhintergrunds
  • 4.15.3 Daten auf einer Karte anzeigen
  • 4.15.4 Beispiel: Kalifornische Städte
  • 4.15.5 Beispiel: Oberflächentemperaturen
  • 4.16 Visualisierung mit Seaborn
  • 4.16.1 Seaborn kontra Matplotlib
  • 4.16.2 Seaborn-Diagramme
  • 4.17 Weitere Ressourcen
  • 4.17.1 Matplotlib
  • 4.17.2 Weitere Grafikbibliotheken für Python
  • Kapitel 5: Machine Learning
  • 5.1 Was ist Machine Learning?
  • 5.1.1 Kategorien des Machine Learnings
  • 5.1.2 Qualitative Beispiele für Machine-Learning-Anwendungen
  • 5.1.3 Zusammenfassung
  • 5.2 Kurz vorgestellt: Scikit-Learn
  • 5.2.1 Datenrepräsentierung in Scikit-Learn
  • 5.2.2 Scikit-Learns Schätzer-API
  • 5.2.3 Anwendung: Handgeschriebene Ziffern untersuchen
  • 5.2.4 Zusammenfassung
  • 5.3 Hyperparameter und Modellvalidierung
  • 5.3.1 Überlegungen zum Thema Modellvalidierung
  • 5.3.2 Auswahl des besten Modells
  • 5.3.3 Lernkurven
  • 5.3.4 Validierung in der Praxis: Rastersuche
  • 5.3.5 Zusammenfasssung
  • 5.4 Merkmalserstellung
  • 5.4.1 Kategoriale Merkmale
  • 5.4.2 Texte als Merkmale
  • 5.4.3 Bilder als Merkmale
  • 5.4.4 Abgeleitete Merkmale
  • 5.4.5 Vervollständigung fehlender Daten
  • 5.4.6 Pipelines mit Merkmalen
  • 5.5 Ausführlich: Naive Bayes-Klassifikation
  • 5.5.1 Bayes-Klassifikation
  • 5.5.2 Gauß'sche naive Bayes-Klassifikation
  • 5.5.3 Multinomiale naive Bayes-Klassifikation
  • 5.5.4 Einsatzgebiete für naive Bayes-Klassifikation
  • 5.6 Ausführlich: Lineare Regression
  • 5.6.1 Einfache lineare Regression
  • 5.6.2 Regression der Basisfunktion
  • 5.6.3 Regularisierung
  • 5.6.4 Beispiel: Vorhersage des Fahrradverkehrs
  • 5.7 Ausführlich: Support Vector Machines
  • 5.7.1 Gründe für Support Vector Machines
  • 5.7.2 Support Vector Machines: Maximierung des Randbereichs
  • 5.7.3 Beispiel: Gesichtserkennung
  • 5.7.4 Zusammenfassung Support Vector Machines
  • 5.8 Ausführlich: Entscheidungsbäume und Random Forests
  • 5.8.1 Gründe für Random Forests
  • 5.8.2 Schätzerensembles: Random Forests
  • 5.8.3 Random-Forest-Regression
  • 5.8.4 Beispiel: Random Forest zur Klassifikation handgeschriebener Ziffern
  • 5.8.5 Zusammenfassung Random Forests
  • 5.9 Ausführlich: Hauptkomponentenanalyse
  • 5.9.1 Kurz vorgestellt: Hauptkomponentenanalyse
  • 5.9.2 Hauptkomponentenanalyse als Rauschfilter
  • 5.9.3 Beispiel: Eigengesichter
  • 5.9.4 Zusammenfassung Hauptkomponentenanalyse
  • 5.10 Ausführlich: Manifold Learning
  • 5.10.1 Manifold Learning: »HELLO«
  • 5.10.2 Multidimensionale Skalierung (MDS)
  • 5.10.3 MDS als Manifold Learning
  • 5.10.4 Nichtlineare Einbettungen: Wenn MDS nicht funktioniert
  • 5.10.5 Nichtlineare Mannigfaltigkeiten: lokal lineare Einbettung
  • 5.10.6 Überlegungen zum Thema Manifold-Methoden
  • 5.10.7 Beispiel: Isomap und Gesichter
  • 5.10.8 Beispiel: Visualisierung der Strukturen in Zifferndaten
  • 5.11 Ausführlich: k-Means-Clustering
  • 5.11.1 Kurz vorgestellt: der k-Means-Algorithmus
  • 5.11.2 k-Means-Algorithmus: Expectation-Maximization
  • 5.11.3 Beispiele
  • 5.12 Ausführlich: Gauß'sche Mixture-Modelle
  • 5.12.1 Gründe für GMM: Schwächen von k-Means
  • 5.12.2 EM-Verallgemeinerung: Gauß'sche Mixture-Modelle
  • 5.12.3 GMM als Dichteschätzung
  • 5.12.4 Beispiel: GMM zum Erzeugen neuer Daten verwenden
  • 5.13 Ausführlich: Kerndichteschätzung
  • 5.13.1 Gründe für Kerndichteschätzung: Histogramme
  • 5.13.2 Kerndichteschätzung in der Praxis
  • 5.13.3 Beispiel: Kerndichteschätzung auf Kugeloberflächen
  • 5.13.4 Beispiel: Nicht ganz so naive Bayes-Klassifikation
  • 5.14 Anwendung: Eine Gesichtserkennungs-Pipeline
  • 5.14.1 HOG-Merkmale
  • 5.14.2 HOG in Aktion: eine einfache Gesichtserkennung
  • 5.14.3 Vorbehalte und Verbesserungen
  • 5.15 Weitere Machine-Learning-Ressourcen
  • 5.15.1 Machine Learning in Python
  • 5.15.2 Machine Learning im Allgemeinen

Einleitung


Was ist Data Science?


In diesem Buch geht es darum, Data Science mithilfe von Python zu betreiben, daher stellt sich unmittelbar die Frage: Was ist Data Science überhaupt? Das genau zu definieren, erweist sich als überraschend schwierig, insbesondere in Anbetracht der Tatsache, wie geläufig dieser Begriff inzwischen geworden ist. Von lautstarken Kritikern wird dieser Begriff mitunter als eine überflüssige Bezeichnung abgetan (denn letzten Endes kommt keine Wissenschaft ohne Daten aus) oder für ein leeres Schlagwort gehalten, das lediglich dazu dient, Lebensläufe aufzupolieren, um die Aufmerksamkeit übereifriger Personalverantwortlicher zu erlangen.

Meiner Ansicht nach übersehen diese Kritiker dabei einen wichtigen Punkt. Trotz des mit dem Begriff einhergehenden Hypes ist Data Science wohl die beste Beschreibung für fachübergreifende Fähigkeiten, die in vielen industriellen und akademischen Anwendungsbereichen immer wichtiger werden. Entscheidend ist hier die Interdisziplinarität: Ich halte Drew Conways? Venn-Diagramm, das er im September 2010 erstmals in seinem Blog veröffentlichte, für die beste Definition von Data Science (siehe Abbildung 0.1).

Abb. 0.1: Das Venn-Diagramm zur Data Science von Drew Conway

Zwar sind einige der Bezeichnungen für die Schnittmengen nicht ganz ernst gemeint, aber dennoch erfasst dieses Diagramm das Wesentliche dessen, was gemeint ist, wenn man von »Data Science« spricht: Es handelt sich um ein grundlegend interdisziplinäres Thema. Data Science umfasst drei verschiedene und sich überschneidende Bereiche: die Aufgaben eines Statistikers, der (immer größer werdende) Datenmengen modellieren und zusammenfassen kann, die Arbeit des Informatikers, der Algorithmen für die effiziente Speicherung, Verarbeitung und Visualisierung dieser Daten entwerfen kann, und das erforderliche Fachwissen - das wir uns als das »klassisch« Erlernte eines Fachgebiets vorstellen können -, um sowohl die angemessenen Fragen zu stellen als auch die Antworten im richtigen Kontext zu bewerten.

Das habe ich im Sinn, wenn ich Sie dazu auffordere, Data Science nicht als ein neu zu erlernendes Fachwissensgebiet zu begreifen, sondern als neue Fähigkeiten, die Sie im Rahmen Ihres vorhandenen Fachwissens anwenden können. Ob Sie über Wahlergebnisse berichten, Aktienrenditen vorhersagen, Mausklicks auf Onlinewerbung optimieren, Mikroorganismen auf Mikroskopbildern identifizieren, nach neuen Arten astronomischer Objekte suchen oder mit irgendwelchen anderen Daten arbeiten: Ziel dieses Buchs ist es, Ihnen die Fähigkeit zu vermitteln, neuartige Fragen über das von Ihnen gewählte Fachgebiet zu stellen und diese zu beantworten.

An wen richtet sich das Buch?


Sowohl in meinen Vorlesungen an der Universität Washington als auch auf verschiedenen technisch orientierten Konferenzen und Treffen wird mir am häufigsten diese Frage gestellt: »Wie kann man Python am besten erlernen?« Bei den Fragenden handelt es sich im Allgemeinen um technisch interessierte Studenten, Entwickler oder Forscher, die oftmals schon über umfangreiche Erfahrung mit dem Schreiben von Code und der Verwendung von rechnergestützten und numerischen Tools verfügen. Die meisten dieser Personen möchten Python erlernen, um die Programmiersprache als Tool für datenintensive und rechnergestützte wissenschaftliche Aufgaben zu nutzen. Für diese Zielgruppe ist eine Vielzahl von Lernvideos, Blogbeiträgen und Tutorials online verfügbar. Allerdings frustriert mich bereits seit geraumer Zeit, dass es auf obige Frage keine wirklich eindeutige und gute Antwort gibt - und das war der Anlass für dieses Buch.

Das Buch ist nicht als Einführung in Python oder die Programmierung im Allgemeinen gedacht. Ich setze voraus, dass der Leser mit der Programmiersprache Python vertraut ist. Dazu gehören das Definieren von Funktionen, die Zuweisung von Variablen, das Aufrufen der Methoden von Objekten, die Steuerung des Programmablaufs und weitere grundlegende Aufgaben. Das Buch soll vielmehr Python-Usern dabei helfen, die zum Betreiben von Data Science verfügbaren Pakete zu nutzen - Bibliotheken wie IPython, NumPy, Pandas, Matplotlib, Scikit-Learn und ähnliche Tools -, um Daten effektiv zu speichern, zu handhaben und Einblick in diese Daten zu gewinnen.

Warum Python?


Python hat sich in den letzten Jahrzehnten zu einem erstklassigen Tool für wissenschaftliche Berechnungen entwickelt, insbesondere auch für die Analyse und Visualisierung großer Datensätze. Die ersten Anhänger der Programmiersprache Python dürfte das ein wenig überraschen: Beim eigentlichen Design der Sprache wurde weder der Datenanalyse noch wissenschaftlichen Berechnungen besondere Beachtung geschenkt.

Dass sich Python für die Data Science als so nützlich erweist, ist vor allem dem großen und aktiven Ökosystem der Programmpakete von Drittherstellern zu verdanken: Da gibt es NumPy für die Handhabung gleichartiger Array-basierter Daten, Pandas für die Verarbeitung verschiedenartiger und gekennzeichneter Daten, SciPy für gängige wissenschaftliche Berechnungen, Matplotlib für druckreife Visualisierungen, IPython für die interaktive Ausführung und zum Teilen von Code, Scikit-Learn für Machine Learning sowie viele weitere Tools, die später im Buch noch Erwähnung finden.

Falls Sie auf der Suche nach einer Einführung in die Programmiersprache Python sind, empfehle ich das dieses Buch ergänzende Projekt A Whirlwind Tour of the Python Language (https://github.com/jakevdp/WhirlwindTourOfPython). Hierbei handelt es sich um eine Tour durch die wesentlichen Features der Sprache Python, die sich an Data Scientists richtet, die bereits mit anderen Programmiersprachen vertraut sind.

Python 2 kontra Python 3


In diesem Buch wird die Syntax von Python 3 verwendet, die Spracherweiterungen enthält, die mit Python 2 inkompatibel sind. Zwar wurde Python 3 schon 2008 veröffentlicht, allerdings verbreitete sich diese Version insbesondere in den Communitys von Wissenschaft und Webentwicklung nur langsam. Das lag vor allem daran, dass die Anpassung vieler wichtiger Pakete von Drittherstellern an die neue Sprachversion Zeit benötigte. Seit Anfang 2014 gibt es jedoch stabile Versionen der für die Data Science wichtigsten Tools, die sowohl mit Python 2 als auch mit Python 3 kompatibel sind, daher wird in diesem Buch die neuere Syntax von Python 3 genutzt. Allerdings funktionieren die meisten Codeabschnitte dieses Buchs ohne Änderungen auch in Python 2. Wenn Py2-inkompatible Syntax verwendet wird, weise ich ausdrücklich darauf hin.

Inhaltsübersicht


Alle Kapitel in diesem Buch konzentrieren sich auf ein bestimmtes Paket oder Tool, das für die mit Python betriebene Data Science von grundlegender Bedeutung ist.

IPython und Jupyter (Kapitel 1)

Diese Pakete bieten eine Umgebung für Berechnungen, die von vielen Data Scientists genutzt wird, die Python einsetzen.

NumPy (Kapitel 2)

Diese Bibliothek stellt das ndarray-Objekt zur Verfügung, das ein effizientes Speichern und die Handhabung dicht gepackter Datenarrays in Python ermöglicht.

Pandas (Kapitel 3)

Diese Bibliothek verfügt über das DataFrame-Objekt, das ein effizientes Speichern und die Handhabung gekennzeichneter bzw. spaltenorientierter Daten in Python gestattet.

Matplotlib (Kapitel 4)

Diese Bibliothek ermöglicht flexible und vielfältige Visualisierungen von Daten in Python.

Scikit-Learn (Kapitel 5)

Diese Bibliothek stellt eine effiziente Implementierung der wichtigsten und gebräuchlichsten Machine-Learning-Algorithmen zur Verfügung.

Natürlich umfasst die PyData-Welt viel mehr als diese fünf Pakete - und sie wächst mit jedem Tag weiter. Ich werde mich im Folgenden daher bemühen, Hinweise auf andere interessante Projekte, Bestrebungen und Pakete zu geben, die die Grenzen des mit Python Machbaren erweitern. Dessen ungeachtet sind die fünf genannten Pakete derzeit für viele der mit Python möglichen Aufgaben der Data Science von grundlegender Bedeutung, und ich erwarte, dass sie wichtig bleiben, auch wenn das sie umgebende Ökosystem weiterhin wächst.

Verwendung der Codebeispiele


Unter https://github.com/jakevdp/PythonDataScienceHandbook steht ergänzendes Material (Codebeispiele, Abbildungen usw.) zum Herunterladen zur Verfügung. Das Buch soll Ihnen helfen, Ihre Arbeit zu erledigen. Den im Buch aufgeführten Code können Sie generell in Ihren eigenen Programmen und der Dokumentation verwenden. Sie brauchen uns nicht um Erlaubnis zu fragen, solange Sie nicht erhebliche Teile des Codes nutzen. Wenn Sie beispielsweise ein Programm schreiben, das einige der im Buch aufgeführten Codeschnipsel verwendet, benötigen Sie dafür keine Erlaubnis. Der Verkauf oder Vertrieb einer CD-ROM, die Codebeispiele aus dem Buch enthält, bedarf hingegen einer Genehmigung. Das Beantworten von Fragen durch Verwendung von Zitaten oder Beispielcode aus diesem Buch muss nicht extra genehmigt werden. Die Verwendung erheblicher Teile des Beispielcodes in der Dokumentation Ihres eigenen Produkts erfordert jedoch eine Genehmigung.

Wir freuen uns über Quellennennungen, machen sie jedoch nicht zur Bedingung. Üblich ist die Nennung von Titel, Autor(en), Verlag, Erscheinungsjahr und...

Dateiformat: EPUB
Kopierschutz: Wasserzeichen-DRM (Digital Rights Management)

Systemvoraussetzungen:

Computer (Windows; MacOS X; Linux): Verwenden Sie eine Lese-Software, die das Dateiformat EPUB verarbeiten kann: z.B. Adobe Digital Editions oder FBReader - beide kostenlos (siehe E-Book Hilfe).

Tablet/Smartphone (Android; iOS): Installieren Sie bereits vor dem Download die kostenlose App Adobe Digital Editions (siehe E-Book Hilfe).

E-Book-Reader: Bookeen, Kobo, Pocketbook, Sony, Tolino u.v.a.m. (nicht Kindle)

Das Dateiformat EPUB ist sehr gut für Romane und Sachbücher geeignet - also für "fließenden" Text ohne komplexes Layout. Bei E-Readern oder Smartphones passt sich der Zeilen- und Seitenumbruch automatisch den kleinen Displays an. Mit Wasserzeichen-DRM wird hier ein "weicher" Kopierschutz verwendet. Daher ist technisch zwar alles möglich - sogar eine unzulässige Weitergabe. Aber an sichtbaren und unsichtbaren Stellen wird der Käufer des E-Books als Wasserzeichen hinterlegt, sodass im Falle eines Missbrauchs die Spur zurückverfolgt werden kann.

Weitere Informationen finden Sie in unserer E-Book Hilfe.


Download (sofort verfügbar)

42,99 €
inkl. 19% MwSt.
Download / Einzel-Lizenz
ePUB mit Wasserzeichen-DRM
siehe Systemvoraussetzungen
E-Book bestellen

Unsere Web-Seiten verwenden Cookies. Mit der Nutzung dieser Web-Seiten erklären Sie sich damit einverstanden. Mehr Informationen finden Sie in unserem Datenschutzhinweis. Ok