Top 10 der Python Bibliotheken für Data Science

Python gilt unter Data Scientists als Alternative zu R Statistics. Ich bevorzuge Python auf Grund seiner Syntax und Einfachheit gegenüber R, komme hinsichtlich der vielen Module jedoch häufig etwas durcheinander. Aus diesem Grund liste ich hier die – meiner Einschätzung nach – zehn nützlichsten Bibliotheken für Python, um einfache Datenanalysen, aber auch semantische Textanalysen, Predictive Analytics und Machine Learning in die Tat umzusetzen.

NumPy – Numerische Analyse

NumPy ist eine Open Source Erweiterung für Python. Das Modul stellt vorkompilierte Funktionen für die numerische Analyse zur Verfügung. Insbesondere ermöglicht es den einfachen Umgang mit sehr großen, multidimensionalen Arrays (Listen) und Matrizen, bietet jedoch auch viele weitere grundlegende Features (z. B. Funktionen der Zufallszahlenbildung, Fourier Transformation, linearen Algebra). Ferner stellt das NumPy sehr viele Funktionen mathematische Funktionen für das Arbeiten mit den Arrays und Matrizen bereit.

matplotlib – 2D/3D Datenvisualisierung

Die matplotlib erweitert NumPy um grafische Darstellungsmöglichkeiten in 2D und 3D. Das Modul ist in Kombination mit NumPy wohl die am häufigsten eingesetzte Visualisierungsbibliothek für Python.

Die matplotlib bietet eine objektorientierte API, um die dynamischen Grafiken in Pyhton GUI-Toolkits einbinden zu können (z. B. GTL+ oder wxPython).

NumPy und matplotlib werden auch mit den nachfolgenden Bibliotheken kombiniert.

Bokeh – Interaktive Datenvisualisierung

Während die Plot-Funktionen von matplotlib statisch angezeigt werden, kann in den Visualsierungsplots von Bokeh der Anwender interaktiv im Chart klicken und es verändern. Bokeh ist besonders dann geeignet, wenn die Datenvisualisierung als Dashboard im Webbrowser erfolgen soll.

Das Bild über diesen Artikel zeigt Visualiserungen mit dem Python Package Bokeh.

Pandas – Komplexe Datenanalyse

Pandas ist eine Bibliothek für die Datenverarbeitung und Datenanalyse mit Python. Es erweitert Python um Datenstrukturen und Funktionen zur Verarbeitung von Datentabellen. Eine besondere Stärke von Pandas ist die Zeitreihenanalyse. Pandas ist freie Software (BSD License).

Statsmodels – Statistische Datenanalyse

Statsmodels is a Python module that allows users to explore data, estimate statistical models, and perform statistical tests. An extensive list of descriptive statistics, statistical tests, plotting functions, and result statistics are available for different types of data and each estimator.

Die explorative Datenanalyse, statistische Modellierung und statistische Tests ermöglicht das Modul Statsmodels. Das Modul bringt neben vielen statistischen Funktionen auch eigene Plots (Visualisierungen) mit. Mit dem Modul wird Predictive Analytics möglich. Statsmodels wird häufig mit NumPy, matplotlib und Pandas kombiniert.

SciPy – Lineare Optimierung

SciPy ist ein sehr verbreitetes Mathematik-Modul für Python, welches den Schwerpunkt auf die mathematische Optimierung legt. Funktionen der linearen Algebra, Differenzialrechnung, Interpolation, Signal- und Bildverarbeitung sind in SciPy enthalten.

scikit-learn – Machine Learning

scikit-learn ist eine Framework für Python, das auf NumPy, matplotlob und SciPy aufsetzt, dieses jedoch um Funktionen für das maschinelle Lernen (Machine Learning) erweitert. Das Modul umfasst für das maschinelle Lernen notwendige Algorithmen für Klassifikationen, Regressionen, Clustering und Dimensionsreduktion.

Mlpy – Machine Learning

Alternativ zu scikit-learn, bietet auch Mlpy eine mächtige Bibliothek an Funktionen für Machine Learning. Mlpy setzt ebenfalls auf NumPy und SciPy, auf, erweitert den Funktionsumfang jedoch um Methoden des überwachten und unüberwachten maschinellen Lernens.

NLTK – Text Mining

NLTK steht für Natural Language Toolkit und ermöglicht den effektiven Einstieg ins Text Mining mit Python. Das Modul beinhaltet eigene (eher einfache) Visualisierungsmöglichkeiten zur Darstellung von Textmuster-Zusammenhängen, z. B. in Baumstrukturen. Für Text Mining und semantische Textanalysen mit Python gibt es wohl nichts besseres als NLTK.

Theano – Multidimensionale Berechnungen & GPU-Processing

Theano is a Python library that allows you to define, optimize, and evaluate mathematical expressions involving multi-dimensional arrays efficiently

Für multidimensionale Datenanalysen bzw. die Verarbeitung und Auswertung von multidimensionalen Arrays gibt es wohl nichts schnelleres als die Bibliothek Theano. Theano ist dabei eng mit NumPy verbunden.

Theano ermöglicht die Auslagerung der Berechnung auf die GPU (Grafikprozessor), was bis zu 140 mal schneller als auf der CPU sein soll. Getestet habe ich es zwar nicht, aber grundsätzlich ist es wahr, dass die GPU multidimensionale Arrays schneller verarbeiten kann, als die CPU. Zwar ist die CPU universeller (kann quasi alles berechnen), die GPU ist aber auf die Berechnung von 3D-Grafiken optimiert, die ebenfalls über multidimensionalen Vektoren verarbeitet werden.

Was ist Data Science?

Was bitte soll Data Science bedeuten? Diese Frage bekomme ich häufig von meinen Kunden (überwiegend kaufmännische Leiter größerer Wirtschaftsunternehmen) gestellt. Und überraschenderweise können auch viele IT-affine Professionals, die sich beispielsweise schon mit Business Intelligence auseinandergesetzt haben, noch nichts mit dieser Bezeichnung anfangen.

Data Science ist eine recht neue Bezeichnung und entstammt – wie nicht anders zu vermuten – aus dem angelsächsischen Sprachraum, genau wie auch Business Intelligence und Big Data Analytics. Dadatasciencebei ist meiner Meinung nach Data Science ein vergleichsweise sehr treffender Name (wesentlich besser als etwa der irreführende Begriff Big Data). Zwar besagt ein Blick auf Wikipedia zum Thema, dass Data Science als Begriff schon fast ein halbes Jahrhundert existiert, aber so richtig in Verwendung ist es eigentlich erst seit einem halben Jahrzehnt, bestenfalls.

Data Science als angewandte Wissenschaft

Das Science in Data Science deutet ganz klar auf Wissenschaft hin, auch wenn – meiner Meinung nach – der Begriff wissenschaftlich im Deutschen etwas strenger verwendet wird als Science im Englischen. Data Science hat seinen Ursprung tatsächlich in der Wissenschaft und ist z. B. in der Astronomie, Biologie, Medizin sowie den verschiedensten Sozialwissenschaften längst nicht mehr wegzudenken, hat jedoch auch den Weg in die Geschäftswelt gefunden. Die Data Science Methoden kommen aus der Informatik bzw. Mathematik und werden im Rahmen von universitären Forschungsprojekten weiterentwickelt. Die Methoden können mit etwas Hintergrundverständnis quasi von jedermann angewendet werden. Data Science ist vor allem eine angewandte Wissenschaft, in die jeder Anwender beliebig tief eintauchen kann.

Data Science und die Interdisziplinarität

Eine wichtige Disziplin im Data Science ist die Mathematik, davon insbesondere die Stochastik (Wahrscheinlichkeitstheorie und Statistik). Die Grundlagen der Datenanalyse zur Beschreibung von Sachverhalten erfolgt dabei mit den Methoden der deskriptiven Statistik. Bei der Generierung von neuen Erkenntnissen direkt aus Datenmengen heraus (Data Mining bzw. explorative Datenanalyse), wird von der explorativen Statistik ermöglicht. Die induktive Statistik geht noch einen Schritt weiter und ermöglicht Schätzverfahren bzw. Prognosen über zukünftige Ereignisse (Predictive Analytics). Neben den stochastischen Methoden spielen aber auch andere Bereiche der Mathematik eine Rolle, wie etwa die lineare Optimierung oder Systeme der künstlichen Intelligenz.

Mathematik ist jedoch längst nicht alles, was im Data Science eine Rolle spielt, denn mindestens ebenso wichtig ist Wissen über Datenverarbeitung (früher als EDV bekannt). Um Daten analysieren zu können, muss auf diese erstmal zugegriffen werden können, ggf. müssen diese auch überhaupt erstmal gesammelt werden. Zum Data Science gehören mindestens Grundkenntnisse über relationale Datenbanken und die Structured Query Language (SQL) auf jeden Fall dazu. Insbesondere im aktuellen Big Data Kontext, spielen aber vermehrt auch andersartige Datenbanken (sogenannte NoSQL-Datenbanken) eine wichtige Rolle, denn diese Datenbanken eignen sich zur Speicherung von besonders großen und/oder unstrukturierten Datenmengen.
Die besten Erkenntnisse bringen oftmals Datenanalysen über Daten aus unterschiedlichsten Datenquellen, welche über Extract-Transform-Load-Strecken (ETL) zusammen geführt werden. Die eigentlichen Analysen können mit verschiedensten Tools durchgeführt werden oder aber über dutzende Programmiersprachen. Wissen um Tools rund um ETL und Datenanalysen beschleunigen den Arbeitsalltag, stoßen jedoch schnell an gewisse Grenzen, bei denen man mit Programmiersprachen ansetzen muss. Im Data Science spielt Software Engineering grundsätzlich keine Rolle. Ein Data Scientist muss sich also für gewöhnlich keine Gedanken über eine Software-Architektur oder GUI-Entwürfe machen, auch spielt für Ihn Software-Sicherheit oder -Ergonomie keine entscheidende Rolle. Im Data Science kommen überwiegend Script-Sprachen (z. B. R, Perl oder Python) zum Einsatz. Sauberer Quellcode jedoch, ist auch im Data Science wichtig, da die Analyse und somit auch die Ergebnisse reproduzierbar bleiben müssen.

Neben der Mathematik und dem Wissen um IT, gibt es jedoch noch einen dritten Bereich, der im Data Science eine wirklich wichtige Rolle spielt: Die eigentliche Substanzwissenschaft. Es versteht sich von selbst, dass z. B. Datenanalyse für medizinische Zwecke nur effektiv nur von jemanden durchgeführt werden können, der über eine entsprechende medizinische Kompetenz verfügt. Genauso gut aber, ist Wissen über die Betriebswirtschaft und das aktuelle Geschäftsgeschehen von entscheidender Bedeutung, wenn es um Datenanalyse zum Zwecke der Geschäftsoptimierung (Business Analytics) geht.