Jupyter Notebook und JupyterLab

Die preisgekrönte Software Jupyter Notebook ist in vielen Forschungsbereichen zum Defacto-Standard geworden. Bei der Entwicklung von Algorithmen, der Verarbeitung von Daten und der Zusammenarbeit in offenen Forschungsprozessen spielt die Software ihre Stärken aus. JupyterLab ist die Weiterentwicklung von Jupyter Notebook und bietet vor allem auf der Benutzeroberfläche einige sinnvolle Neuerungen (vgl. Abb. 1).

Screenshot JupyterLab. Quelle: https://jupyterlab.readthedocs.io/en/latest/

Abbildung 1: Screenshot JupyterLab. Quelle: https://jupyterlab.readthedocs.io/en/latest/

Arbeitsweise

Die klassische Arbeit in Jupyter Notebooks beginnt mit dem Import von Daten. Mit zahlreichen Skript- und Programmiersprachen können diese aufbereitet, analysiert und visualisiert werden. Da Jupyter Notebook mit so genannten Zellen arbeitet, können sich Codezellen und Textzellen abwechseln. Code wird direkt in den Zellen ausgeführt, Texte werden in Markdown verfasst. Dadurch können Hypothesen und Annahmen über die Daten formuliert und anschließend mithilfe von Code direkt überprüft werden. Die folgende Zelle hält dann die Beobachtung und Interpretation fest. So entstehen reproduzierbare Forschungstagebücher und im fortgeschrittenen Stadium publikationsreife Artikel. Abb. 2 zeigt an einem einfachen Beispiel die Verzahnung von Text und Code.

Ausschnitt aus einem Jupyter Notebook, das die Kombination von Code- und Textzellen zeigt. Quelle: eigene Darstellung

Abbildung 2: Ausschnitt aus einem Jupyter Notebook, das die Kombination von Code- und Textzellen zeigt. Quelle: eigene Darstellung

Reproduzierbare Forschung

Die Jupytertools haben deshalb in vielen verschiedenen Domänen einen bedeutenden Stellenwert erlangt, weil sie den klassischen wissenschaftlichen Workflow so komprimiert abbilden wie ein Burger ein Dreigängemenü: Salat und Brot als Vorspeise, Fleisch im Hauptgang und Käse zum Abschluss. Für Jupyter Notebook heißt das: Forschen, Schreiben, Publizieren. Wie auch der Hamburger die Abfolge der drei Gänge zeitlich und räumlich in sich vereint, finden auch in einem Notebook die drei Schritte des wissenschaftlichen Arbeitens zeitgleich und iterativ statt: Während ich forsche, schreibe ich, was ich beobachte, forsche mit neuen Erkenntnissen weiter, schreibe usw., bis ich einen Text habe, den ich veröffentlichen kann.

So ist es vorstellbar, einen “Nur-Lesen”-Text in einem renomierten Journal zu veröffentlichen, die interaktiven Notebooks über ein Git[Hub|Lab]-Repository zugänglich zu machen, dieses Repo über Zenodo mit einem Digital Object Identifier (DOI) zu versehen und auf diesen in der Publikation zu verweisen. Tools wie bspw. binder erlauben Wissenschaftler_innen dann, die Notebooks aus dem Git[Hub|Lab]-Repo direkt im Browser interaktiv nachvollziehen zu können, um damit die Ergebnisse aus der Publikation zu reproduzieren und zu prüfen. Abb. 3 visualisiert diesen möglichen Workflow exemplarisch.

Exemplarischer Publikationsworkflow mit Jupyter Notebook. Quelle: eigene Darstellung

Abbildung 3: Exemplarischer Publikationsworkflow mit Jupyter Notebook. Quelle: eigene Darstellung

Über den folgenden Button kann das Beispiel aus Abb. 2 direkt im Browser nachvollzogen werden. In der sich öffnenden Ansicht ist die Datei jupyter-beispiel.ipynb anzuklicken.

Binder

Installation und Einsatz

Jupyter Notebook und JupyterLab laufen auf allen relevanten Betriebssystemen als Browsertool und können bspw. mithilfe von Anaconda auf dem eigenen Rechner installiert werden. Über eine serverseitige Installation von JupyterHub sind auch kollaborative Arbeiten an Daten- und Forschungsprojekten möglich. Die TUHH verfügt seit 2018 über einen JupyterHub, der im WiSe 2018/19 erstmals auch für elektronische Prüfungen eingesetzt wird.

Jupyter-Notebook-Installation können einfach über Plugins erweitert werden. So können z.B. mit RISE Präsentationen direkt aus Notebooks erstellt werden. Jede Zelle kann dabei zu einer eigenen Folie werden, in der der Code bei einer Präsentation live ausgeführt werden kann!