Numerisches Programmieren mit Python

Definition von numerischer Programmierung

Als Titel dieses Tutorials haben wir den Begriff "Numerisches Python" gewählt. Damit wollten wir bewusst auf den Begriff "Numerisches Programmieren" anspielen. Der Ausdruck "numerisches Programmieren" - auch bekannt unter dem Begriff "wissenschaftliches Programmiern" - ist irreführend. Man könnte es als eine Programmierung ansehen, die mit Zahlen statt mit z.B. Texten zu tun hat. Letztendlich haben die meisten Programme, auch wenn sie scheinbar nichts mit Zahlen zu tun haben, einen numerischen Kern. Denkt man beispielsweise an den Google-Algorithmus und an die Art wie er einem Vorschläge zu Webseiten auf eine Suchanfrage offeriert, dann könnte man glauben, dass es sich bei dem zugrundeliegenden Algorithmus um reine Textverarbeitung handelt. Dennoch ist auch in diesem Fall der Kern bzw. der wesentliche Teil des Algorithmus ein numerisches Problem. Um seinen PageRanking-Algorithmus, d.h. die Bewertung der Webseiten, durchzuführen, lässt Google die größte jemals von Menschen erdachte Matrix berechnen.

So könnte man denken, dass es sich letztendlich bei jedem Programm um numerische Programmierung handelt, aber es gibt auch eine engere Definition.

Unter numerischer Programmierung versteht man das Gebiet der Informatik und der Mathematik, in dem es um Approximationsalgorithmen geht, d.h. die numerische Approximation von mathematischen Problemen oder numerischen Analysis. In anderen Worten Probleme mit stetigen Variablen.

Python gehört zu den wichtigsten und häufigst benutzten Programmiersprachen in diesem Gebiet. Allerdings würde Python keine Rolle spielen, wenn es nicht mächtige Module zur numerischen Programmierung zur Verfügung stellte, die wir im Folgenden beschreiben werden.

Zusammenhang zwischen Python, NumPy, Matplotlib, SciPy und Pandas

Formeln mit Tintenklecksen

Python ist eine universelle Programmiersprache, die sich in den unterschiedlichsten Gebieten einsetzen lässt. So zum Beispiel in der Systemadministration, als Tool zur Erzeugung und zum Betrieb von dynamischen Webseiten und in der Computerlinguistik. Da Python ein universelle Programmiersprache ist, lässt sie sich natürlich auch zum Lösen numerischer Probleme einsetzen. So weit so gut, aber die Crux bei der Sache liegt in der Laufzeit und auch im Speicherverbrauch. Reines Python - also ohne den Einsatz irgendwelcher numerischer Spezialmodule - würde sich nicht eignen für Aufgaben, für die Matlabl und R geschaffen worden sind. Sobald es um die Lösung numerischer Probleme geht, ist die Leistungsfähigkeit von Algorithmen von höchster Wichtigkeit, sowohl was die Geschwindigkeit als auch den Speicherverbrauch betrifft.



Nutzen wir Python in Kombination mit seinen Modulen NumPy, SciPy, Matplotlib und Pandas, dann gehört die Sprache zu den führenden numerischen Programmiersprachen. Sie ist so effizient, wenn nicht gar effizienter, als Matlab und R.


Überblicksdiagramm: Vergleich zwischen Python, NumPy, SciPy, Matplotlib und Pandas

NumPy ist ein Modul, welches die grundlegenden Datenstrukturen zur Verfügung stellt, die auch von Matplotlib, SciPy und Pandas benutzt werden. NumPy implementiert mehrdimensionale Arrays und Matrizen. Außerdem gibt es den Nutzerinnen und Nutzern auch die wesentlichen Funktionalitäten an die Hand, mit denen sich diese Datenstrukturen erzeugen und manipulieren lassen.

SciPy baut auf NumPy auf, d.h. es benutzt die Datenstrukturen, die NumPy bereitstellt. Es erweitert die Leistungsfähigkeit von NumPy mit weiteren nützlichen Funktionalitäten, wie beispielsweise Minimierung, Regression, Fourier-Transformation und viele andere.



Die von Pythonprogrammen, - mit oder ohne Verwendung von NumPy und SciPy, - erzeugten Daten möchte man häufig gerne grafisch darstellen. Für diesen Zweck wurde das Modul Matplotlib geschaffen.



Das jüngste Kind in dieser Modulfamilie ist Pandas. Pandas benutzt alle bisher genannten Module und ist auf diesen aufgebaut. Der Fokus von Pandas besteht darin, Datenstrukturen und Operationen zur Manipulation von Tabellen und Zeitreihen bereitzustellen. Der Name ist von "panel data" abgeleitet. Pandas ist bestens geeignet mit Tabellendaten zu arbeiten, wie sie beispielsweise von Excel erzeugt werden.

Python, eine Alternative zu Matlab

Python entwickelt sich mehr und mehr zur Hauptprogrammiersprache von Date-Scientists. Dennoch plagt viele Wissenschaftler und Ingenieure die Frage, welche Sprache sie nutzen sollten um ihre Probleme zu lösen. Die Hauptkonkurrenten im Gebiet des Maschinellen Lernens sind sicherlich Python, R und MATLAB.

Bei der Entwicklung von R hatte man Statistiker und Data-Scientists im Visier, wollte aber keinesfalls eine Sprache entwickeln, die sich generell einsetzen lässt. Dies gilt ebenso für MATLAB. Python hingegen wurde von Anfang an als universelle Programmiersprache ausgerichtet. Zusätzliche eignet sich Python in Kombination mit den Modulen NumPy, SciPy, Matplotlib und Pandas bestens um R oder MATLAB zu ersetzen.

Einer der wesentlichen Nachteile von MATLAB gegenüber Python sind wohl die Kosten. Python mit all seinen Modulen ist kostenlos, wohingegen MATLAB recht teuer ist und je nach eingesetzter Toolbox extrem teuer sein kann. Bei Python handelt es sich aber nicht nur um kostenlose sondern auch um "freie" Software, d.h. ihr Einsatz ist nicht durch prohibitive Lizenzmodelle eingeschränkt.

Equivalence between Python, NumPy, SciPy, Matplotlib and Matlab box

Numerisches Python

Die Bücher zur Webseite

Bücher zur Webseite

Im Hanser-Verlag sind vier Bücher von Bernd Klein und Philip Klein erschienen, die auf den Inhalten dieser Webseite aufbauen, aber auch über die Inhalte hinausgehen. Es lohnt sich also die Bücher zu kaufen, womit Sie außerdem diese Webseite unterstützen!

Einführung in Python3

Einführung in Python von Bernd Klein
Zum Online-Shop des Hanser-Verlages, wo Sie das Buch versandkostenfrei bestellen können!


Numerisches Python: Arbeiten mit NumPy, Matplotlib und Pandas

Bernd Klein: Python-Buch Numerisches Python Buch kaufen

Bernd Klein, Philip Klein:
Funktionale Programmierung mit Python

Bernd Klein, Philip Klein: Funktionale Programmierung mit Python Buch kaufen Python-Grundlagen | eLearning
Mit dem Hanser eCampus „Python-Grundlagen“ erhalten Einsteiger:innen eine Einführung in die Programmiersprache Python.

Python Grundlagen: elearning, Bernd Klein Buch kaufen



Bücher kaufen

Wenn Ihnen diese Webseite gefällt, - was wir natürlich sehr hoffen, - dann können Sie meine Arbeit unterstützen, wenn Sie eines meiner Bücher oder beide Bücher kaufen oder weiterempfehlen.

Die Bücher können Sie über jede Buchhandlung in Ihrer Nähe beziehen. Alternativ können Sie sie auch direkt über den Hanser-Verlag beziehen:
Bücher von Bernd Klein und Philip Klein

Spenden

Ihre Unterstützung ist dringend benötigt. Diese Webseite ist frei von Werbeblöcken und -bannern! So soll es auch bleiben! Dazu benötigen wir Ihre Unterstützung:

Weshalb wir Ihre Spende dringend benötigen erfahren Sie hier

Tutorial

Diese Webseite bietet ein Tutorial für Python. Der Unterschied zu anderen Online-Tutorials und Python-Kursen besteht darin, dass wir hier mehr Beispiele und Übungen bieten wollen. Außerdem werden komplexe Probleme in zahlreichen Diagrammen und Bildern veranschaulicht, um einen leichteren Zugang zu gewährleisten. In zahlreichen Python-Kursen hat Bernd Klein die Erfahrungen gesammelt, die in die Entwicklung dieser Webseite eingeflossen sind.

Fortgeschrittene Themen

Auf dieser Webseite befinden sich auch zahlreiche fortgeschrittene Themen zu Python, wie man sie in dieser Art vergeblich in anderen Python-Tutorials sucht. Themen, die insbesondere auch für Studierende der Informatik von besonderem Interesse sind: Turingmaschine, Endliche Automaten, Threads, Graphentheorie

Aber auch für Mathematikerinnen und Mathematiker, Ingenieurinnen und Ingenieure und andere naturwissenschaftlich Orientierte sind zum Beispiel die Einführungen in NumPy, Matplotlib und Pandas von großem Nutzen.


 


Suchen in dieser Webseite:

Webseite durchsuchen:

English Version / Englische Übersetzung

This chapter is also available in our English Python tutorial: Numerical Programming in Python

Schulungen

Wenn Sie Python schnell und effizient lernen wollen, empfehlen wir den Kurs Bodenseo, Linux, Python und viele andere Kurse
Einführung in Python
von Bodenseo. Dieser Kurs wendet sich an totale Anfänger, was Programmierung betrifft. Wenn Sie bereits Erfahrung mit Python oder anderen Programmiersprachen haben, könnte der Python-Kurs für Fortgeschrittene der geeignete Kurs sein.

Python Courses


For those who prefer Python training courses in English: All our Python classes are available in English as well: Python Courses



Dem Autor Bernd Klein auf Facebook folgen:


Bernd Klein on Facebook

Spenden

Ihre Unterstützung ist dringend benötigt. Diese Webseite ist frei von Werbeblöcken und -bannern! So soll es auch bleiben! Dazu benötigen wir Ihre Unterstützung:

Weshalb wir Ihre Spende benötigen erfahren Sie hier

Spruch des Tages:

Ich sei, gewähret mir die Bitte,
in eurem Netzwerk der Dritte.
(frei nach Schiller)


Und noch ein Spruch:

Ich habe kaum jemals einen Mathematiker kennengelernt, der in der Lage war, vernünftige Schlußfolgerungen zu ziehen.
Plato

Hilfe

Diese Dokumentation zu Python mit Einführung und Tutorial wurde mit großer Sorgfalt erstellt und wird ständig erweitert. Dennoch können wir für die Korrektheit der Texte und der zahlreichen Beispiele keine Garantie übernehmen. Die Benutzung und Anwendung der Beispiele erfolgt auf eigenes Risiko. Wir freuen uns über alle Anregungen und Fehlerkorrekturen!



Datenschutzerklärung

Datenschutzerklärung nach DSGVO