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).

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

Loslegen mit Jupyter

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. Unter den verfügbaren Kerneln befindet sich auch eins für Matlab, das in den Ingenieurwissenschaften nach wie vor stark verbreitet ist.

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.

Abbildung 2: Screenshot eines Jupyter Notebooks, das die Kombination von Code- und Textzellen zeigt. Quelle: eigene Darstellung

Was Burger und Notebooks gemeinsam haben

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:

  • Analysieren und erkennen
  • 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 auf, was ich beobachte, forsche mit neuen Erkenntnissen weiter, schreibe und schreibe und veröffentliche im besten Sinne von Open Science schon während des Forschungsprozesses meine Mitschriften und Daten.

Mein Forschungsergebnis veröffentliche ich dann am besten in einem Open-Access-Journal und zitiere darin den Digital Object Identifier (DOI), unter dem meine Notebooks zu finden sind. Den DOI habe ich von Zenodo bekommen, als ich dem Dienst einen Link zu meinem GitHub-Repo mit meinen Jupyter Notebooks gezeigt habe.1 Der Journalartikel zusammen mit meinen Notebooks und Daten machen mein Forschungsergebnis und das Vorgehen transparent und nachvollziehbar.

Um es anderen Wissenschaftler_innen noch einfacher zu machen, nutze ich Tools wie binder, die es erlauben, Notebooks aus dem Git[Hub|Lab]-Repo direkt im Browser interaktiv nachzuvollziehen, um damit die Ergebnisse aus der Publikation zu reproduzieren und zu prüfen. Abb. 3 visualisiert diesen möglichen Workflow exemplarisch.

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. Anschließend können die Zellen geändert und mit STRG+ENTER erneut ausgeführt werden.

Abbildung 4: Darstellung der Dateien in Jupyter Notebook

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.

Jupyter-Notebook-Installationen sind einfach über Plugins zu erweitern. 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!

Jupyter an der TUHH

Die TUHH verfügt seit 2018 über einen JupyterHub, der im WiSe 2018/19 erstmals auch für elektronische Prüfungen eingesetzt wird. Zuvor hatten die Studierenden ein Semester lang eine handlungsorientierte Einführung in Machine-Learning-Grundlagen mit Python, wobei Jupyter Notebooks das zentrale Tool waren. Wir werden in diesem Blog noch ausführlich darüber berichten.

Weiterführende Links


  1. Die Vergabe von DOIs ist derzeit nur für GitHub-Repositories möglich. Repos im GitLab der TUHH können jedoch einfach zu GitHub gespiegelt werden. Mehr dazu im Blog der TU Bibliothek↩

Dieser Beitrag wurde verfasst von Axel Dürkop. Er erschien zuerst im Workshopskript “Kollaborieren in Forschung und Lehre” und würde für diesen Beitrag noch einmal überarbeitet. Teaserbild “Vpython in Jupyter Notebook” von thekirbster, CC-BY 2.0

Weitere Beiträge

SeaPiaC

SeaPiaC

The aim of the project is to create a digital collaborative learning environment in which students of TUHH and NCKU collaborate on challenges of sustainable nature-based coastal protection in times of a changing climate.