Auf der PyCon 2017 hielten zwei Mitglieder der Scientific-Python-Community die Keynotes: Dr. Jake VanderPlas sprach darüber, warum Wissenschaftler:innen Python bereits nutzen und nutzen sollten; Dr. Kathryn Huff zeigte, wie die Python-Community die Wissenschaft unterstützen kann – und warum sie es tun sollte. Zusammen zeichnen diese beiden Vorträge ein klares, stimmiges Bild davon, wie sich wissenschaftliche Forschung und Python-Programmierung gegenseitig verstärken, warum viele Forschende heute mit Python am besten fahren und wie die Python-Community Forschung wirksam voranbringen kann.

Die unerwartete Schlagkraft von Python im Scientific Computing
Jake VanderPlas ist Astronom am eScience Institute der University of Washington in Seattle. Außerdem ist er in der Scientific-Python-Community aktiv und hat unter anderem zu SciPy, scikit-learn und Altair beigetragen.
Viele stellen sich Astronom:innen an riesigen Teleskopen vor, wie sie durch Okulare blicken. Jake versicherte jedoch, dass die meisten in ihrem Berufsleben nie durch ein Teleskop geschaut haben. Ihre Datenerhebung läuft überwiegend über Datenbankabfragen. Datenbanken sind aber nur die Spitze des Eisbergs dessen, was astronomische Rechenkompetenz ausmacht. Die Aufgaben erfordern deutlich mehr – und Jake zeigte mehrere eindrucksvolle Beispiele. Nimm etwa die folgende Visualisierung des TRAPPIST-1-Exoplanetensystems:

Das wirkt wie ein fotorealistisches Bild, ist aber in Wahrheit eine künstlerische Darstellung – nicht die Rohdaten. Die Existenz der Planeten wurde über eine Sternbedeckung erschlossen und mithilfe statistischer Modellierung anhand folgender und weiterer Daten (Abbildung von Ethan Kruse) bestätigt:

Wie wurden diese Inferenz und die statistischen Analysen durchgeführt? Natürlich in Python. Und zwar mittels „unglaublich ausgefeilter statistischer Modellierung des Systems“. Solche Systeme zu finden, so Jake, „läuft darauf hinaus, statistischen Code in eine komplexe Datenanalyse-Pipeline zu gießen“.
Das ist eines von mehreren astronomischen Projekten, die Python in ihrer Datenverarbeitung und Analyse nutzen. Bemerkenswert ist: Diese Projekte sind nicht nur in einer Open-Source-Sprache geschrieben, sie stellen ihren Code auch auf GitHub bereit – etwa Kepler und JWST. Letzteres sucht nach Gasen in Exoplanetenatmosphären, um chemische Signaturen möglichen Lebens aufzuspüren. Diese Projekte setzen auf Python, sind auf GitHub gehostet und verwenden unter anderem Jupyter Notebooks.
Ist das bloß anekdotisch – ein paar Ausnahmen statt der Regel? In der Astronomie nicht. Jake hat analysiert, dass Publikationen, die Python nutzen, stetig zunehmen:

Dieser Python-Hockeystick spricht für sich. Wir wissen also, dass immer mehr Wissenschaftler:innen Python einsetzen. Aber warum tun sie das?
4 Gründe für Python im Scientific Computing
Jake fragte: „Warum ist Python in der Wissenschaft so effektiv?“
1. Interoperabilität mit anderen Sprachen
Python als Klebstoff: Historisch hatten viele Forschende umständliche, komplexe, teils abenteuerliche Datenpipelines – von der Datenbankabfrage über die Kommandozeile, proprietäre Spezialsoftware bis hin zu Visualisierungstools. Jake zitierte Dave Beazley, weil er es treffend formulierte:
„Wissenschaftler:innen arbeiten mit unterschiedlichsten Systemen – von Simulationscodes, Analysepaketen, Datenbanken und Visualisierungstools bis hin zu Eigenentwicklungen. Jede Lösung bringt eigene Schnittstellen und Dateiformate mit. Dadurch verbringen Forschende viel Zeit damit, all diese Komponenten irgendwie miteinander zum Laufen zu bringen…“
Python kann mit den meisten in der Forschung relevanten Tools interagieren – es verbindet, es klebt. Wie Jake sagte: Python „verleimt den Flickenteppich an Werkzeugen, mit denen Leute arbeiten; die hochgradig ausdrucksstarke Python-Syntax umschließt Low-Level-C/Fortran-Bibliotheken“.
2. „Batteries included“ plus Drittanbieter-Module
Ein weiterer Grund, warum Forschende zu Python wechseln (und warum Unentschlossene das „sollten“), ist:
- Vieles ist bereits „out of the box“ nutzbar und
- für den Rest gibt es ein riesiges Scientific-Python-Ökosystem (
SciPy) mit Drittanbieter-Modulen.
Mit den mitgelieferten „Batterien“ lassen sich Webseiten scrapen, Webserver starten, Dateisysteme und Datenbanken ansprechen, JSON lesen und vieles mehr.
Richtig spannend wird es bei den „Third-Party“-Modulen. Beispiele – ohne Anspruch auf Vollständigkeit:
- NumPy für effiziente Array-Berechnungen,
- IPython und Jupyter als interaktive Umgebung und zum Schreiben wissenschaftlicher Dokumente sowie für Kollaboration,
- Numba und Dask für Beschleunigung und verteiltes Rechnen,
- Pandas für DataFrames,
- Matplotlib und Bokeh (u. a.) für Datenvisualisierung – mit einem ganzen Ökosystem an Dataviz-Bibliotheken,
- Scikit-learn für Machine Learning,
- NetworkX für die Arbeit mit komplexen Netzwerken,
- Scikit-image für Bildverarbeitung,
- PyMC für Markov-Chain-Monte-Carlo,
- und vieles mehr.
Wie Jake sagte: „Wenn du ein Problem lösen willst, findest du mit hoher Wahrscheinlichkeit eine passende Bibliothek – und sie liegt vermutlich auf GitHub!“

3. Einfachheit und Dynamik
Python ist vergleichsweise leicht zu schreiben – vor allem im Vergleich zu Sprachen wie C. Jake: „In Python, insbesondere wenn man etwa von C kommt, schreibst du, was passieren soll – und es passiert. Es ist ein bisschen wie ausführbarer Pseudocode.“
Er zitierte auch Perry Greenfield: „Python ist eine Sprache, die für Entwickler:innen sehr mächtig ist, aber zugleich für Astronom:innen zugänglich. Diese beiden Gruppen mit denselben Werkzeugen arbeiten zu lassen, bringt einen riesigen, oft übersehenen Vorteil.“
Dank Tools wie IPython und Jupyter Notebooks eignen sich Python-Workflows ideal für dynamisches Coden und explorative, iterative Datenanalyse. Das senkt die Einstiegshürde, denn wissenschaftliches Coden ist selbst nichtlinear und explorativ. Manche bemängeln die Ausführungsgeschwindigkeit dieser Tools. Für die Forschung zählt jedoch vor allem die Entwicklungsgeschwindigkeit – nicht die Laufzeit. Genau deshalb passen diese Werkzeuge so gut.
4. Offenes Ethos – perfekt für die Wissenschaft
Open-Source-Software verkörpert ein Ethos, das zur geforderten Offenheit in der Wissenschaft passt (manchmal sogar stärker als die Wissenschaft selbst). Mehr dazu gleich bei Katy Huffs Keynote. Wissenschaft passiert nicht nur im veröffentlichten Paper, sondern in den Ergebnissen und in den Anweisungen/Protokollen, die Reproduzierbarkeit ermöglichen. Genau diesen Anspruch verfolgt Open-Source-Entwicklung. Jake zitierte dazu Buckheit und Donoho (1995, nach Jon Claerbout):
„Ein Artikel über ein rechnergestütztes Ergebnis ist Werbung, keine Wissenschaft. Die eigentliche wissenschaftliche Arbeit ist die vollständige Softwareumgebung – Code und Daten –, die das Ergebnis hervorgebracht hat.“ — Buckheit und Donoho, 1995
Open Source und das Ethos der (wissenschaftlichen) Python-Community liefern einen Rahmen, der uns aus der Reproduzierbarkeitskrise führen kann: „Reproduzierbarkeit zu lösen heißt, offene Wissenschaft zu betreiben.“ Die kollaborative, begutachtete, auf GitHub veröffentlichbare Arbeitsweise in der Python-Welt ist dafür zentral. Wer nachvollziehen will, wie 2016 Gravitationswellen (von Einstein vorhergesagt) nachgewiesen wurden, schaut einfach in das LIGO-Repository hier. Oder wenn du – wie immer mehr Astronom:innen – Astropy nutzt, findest du Code und Community hier. Diese Offenheit ist direkte Folge eines Community-Modells, das sich am Open-Source- und Open-Science-Ethos der größeren Python-Community orientiert. Sieh dir die Tabelle an, was die Astronomie-Community laut Jake (nach Perry Greenfield) von der Python-Community gelernt hat:

Tu es für die Wissenschaft
„Ich bin hier, um eure Power für meine Zwecke zu nutzen“, sagte Dr. Kathryn Huff zur PyCon-Community – und lieferte eine überzeugende Begründung, wie und warum die Python-Community helfen kann, die Welt mit Wissenschaft zu retten. Ihre Keynote zeigte eindrucksvoll, warum Open-Source-Entwicklung generell – und Python im Besonderen – im Scientific Computing und in der Forschung so wirkungsvoll ist. Sie ging noch weiter und zeigte unzählige Ansatzpunkte, wo die Python-Community mit ihren Fähigkeiten der Wissenschaft helfen kann. Wenn du Wasser, Gesundheit oder Energie für zentrale Menschheitsthemen hältst, hatte Kathryn passende Projekte und GitHub-Repositories mit offenen Issues parat, in die du direkt einsteigen kannst. Sie gab Dutzende Beispiele offener Projekte und Pakete, zu denen du beitragen kannst.
Kathryn (Katy) ist Nuklearingenieurin, seit Langem in der SciPy-Community aktiv, am Journal of Open Source Software beteiligt und engagiert sich stark bei The Hacker Within sowie bei den Software- und Data-Carpentries. Diese Initiativen helfen Wissenschaftler:innen, Computer effektiver zu nutzen, Entdeckungen zu machen und die Reproduzierbarkeit zu verbessern.
Katys Mission: Die Art und Weise verbessern, wie Kernenergie erzeugt wird. Ihr Werkzeug der Wahl? Python. Bevor sie erläuterte, wie die Python-Community konkret unterstützen kann, begründete sie, warum das nötig ist. Katy zitierte R. K. Merton (1945): Wissenschaft erfordert strenge, strukturierte Prüfung durch die Gemeinschaft – im Grunde eine prägnante Beschreibung von organisiertem Skeptizismus. Genau diese Qualitäten prägen die Open-Source-Python-Community.

Katy unterstrich die Bedeutung dieser Prinzipien, indem sie die Grundpfeiler der Wissenschaft aufzählte – und zeigte, dass Open Source diese seit der pythagoreischen Zeit (6. Jh. v. Chr.) so konsequent lebt wie keine andere Community. Diese Grundpfeiler sind:
- Peer Review
- Skepsis
- Transparenz
- Attribution
- Verantwortlichkeit
- Zusammenarbeit
- Wirkung
Computer „sollten“ Wissenschaftler:innen dabei helfen, Folgendes zu tun:

Was hindert also mehr Forschende daran, Open-Source-Tools wie Python zu nutzen, damit Computer ihnen wirklich helfen?
- Wissenschaftler:innen sind nicht darin ausgebildet, Computer effektiv einzusetzen.
Daher Katys Aufruf an die Python-Community:
„Ich möchte euch einbinden.“
Auch das ist ein weiterer Grund für Forschende, Python einzusetzen: eine riesige Open-Source-Community steht bereit. Parallel dazu setzt sich Katy – wie erwähnt – dafür ein, Forschende in der Computernutzung weiterzubilden. Es gibt mehrere Programme. Ich empfehle allen aktiv Forschenden, Software Carpentry und Data Carpentry anzusehen und zu prüfen, ob sie eurer Gruppe, eurem Fachbereich oder eurer Universität helfen können (Spoiler: Wenn ihr mit Computern arbeitet, sehr wahrscheinlich ja).
Wie schlägt Dr. Katy Huff konkret vor, dass Programmierer:innen helfen? In vier einfachen Schritten:
- Sei neugierig.
- Such dir ein Projekt.
- Trag zur Wissenschaft bei.
- Rette die Welt.
Warum Python für die Forschung?
- Das Python-Ökosystem bietet eine ausgereifte, stetig wachsende Sammlung rechnergestützter Werkzeuge für die Forschung.
- Immer mehr Wissenschaftler:innen wechseln zu Python aufgrund von
- Interoperabilität mit anderen Sprachen,
- „Batteries included“ und Drittanbieter-Modulen für nahezu jede Aufgabe,
- Einfachheit und dynamischer Arbeitsweise,
- einem offenen Ethos, das perfekt zur Wissenschaft passt.
- Die Scientific-Python-Community wächst, die Bibliotheken werden kontinuierlich weiterentwickelt, die Community ist offen.
- Die Open-Source-Community hält die Grundpfeiler wissenschaftlicher Arbeit konsequenter ein als jede andere Community. Diese Prinzipien sind:
- Peer Review
- Skepsis
- Transparenz
- Attribution
- Verantwortlichkeit
- Zusammenarbeit
- Wirkung
- Darüber hinaus gibt es eine breite Python-Community außerhalb der Wissenschaft, die zur Wirkung von Python in Wissenschaft und Gesellschaft beitragen will. In leicht abgewandelten Worten von Perry Greenfield:
„Python ist eine Sprache, die für Entwickler:innen sehr mächtig ist, aber auch für [Wissenschaftler:innen] zugänglich. Diese beiden Gruppen mit denselben Werkzeugen arbeiten zu lassen, bringt einen riesigen Vorteil, der oft übersehen wird.“
Wenn du Gedanken, Feedback oder Anmerkungen hast, schreib mir gern auf Twitter: @hugobowne.