Techtiefen: Jupyter Notebooks in der Informatik
Diese Ausgabe der Techtiefen gibt Tipps und Empfehlungen zu Jupyter Notebooks für erfahrene Developer, bietet aber auch eine Einführung in die Materie.
- Nico Kreiling
- Hans Fangohr
- Harald Schilly
Notebooks sind im Data-Science-Umfeld allgegenwärtig, in anderen Bereichen der Informatik aber vielleicht noch eher unbekannt. Deshalb erklärt Nico mit seinen Gästen Hans Fangohr und Harald Schilly, was Notebooks überhaupt sind und wie sich das Arbeiten damit anfühlt, geben aber auch zahlreiche Tipps und Empfehlungen für erfahrene Nutzer.
Notebooks können in vielen Szenarien nützlich sein. Durch die Kombination von Dokumentation und ausführbarem Code eignen sie sich hervoragend für Schulungen, aber auch für die Dokumentation von Projekten und für explorative, forschungslastigen Arbeiten. Zwar existieren zahlreiche Implementierungen von Notebooks (etwa Googles Colab oder Apache Zeppelin), Jupyter geht jedoch weiter: Die klassischen Notebooks, das Jupyter Lab und der Jupyter Hub bilden zusammen ein Ökosystem. Sie eint die gemeinsame Entstehungsgeschichte, basierend auf der iPython-Konsole, sowie das JSON-basierte Dateiformat iypnb.
Dieses Dateiformat ermöglicht einen flüssigen Übergang zwischen verschiedenen Notebook-Implementierungen, allerdings erschweren Ausführlichkeit und Klammer-Struktur die Versionskontrolle und machen Merge-Requests unübersichtlich. Wir unterhalten uns auch ausführlich über verschiedene Ansätze, etwa zu alternativen Formaten wie RMarkdown und das percent-format sowie deren Synchronisierung mit JupyText.
Empfohlener redaktioneller Inhalt
Mit Ihrer Zustimmmung wird hier ein externer Inhalt geladen.
Ich bin damit einverstanden, dass mir externe Inhalte angezeigt werden. Damit können personenbezogene Daten an Drittplattformen übermittelt werden. Mehr dazu in unserer Datenschutzerklärung.
Links
Jupyter
- Übersichtsseite Projekt Jupyter
- Server für Notebooks mit Benutzerverwaltung: JupyterHub
- Moderne Implementierung, multiple Dokumente etc.: JupyterLab
- Konvertierung nach Plain Text, Python, LaTeX/PDF, HTML: nbconvert
Alternativen zu Jupyter
- Notebooks von Google: Colab
- Alternativprojekt von Apache: Zeppelin
- Echtzeit-Synchronisation von Notebooks uvm.: CoCalc
- Notebooks für Data Scientists: Deepnote
- Desktop-App: nteract
- Notebooks in einer IDE: PyCharm, VSCode, ...
Magics
Einige unserer Lieblings-Magic-Befehle: hier eine ausführliche Liste
Weitere Plug-ins und Links
- Jupyter-Notebook-Instanzen ad hoc ausführen, keine Persistenz: MyBinder
- Sublime Features, ohne die Nico nicht leben kann
- Nico's Opinionated Guide für Notebook-Versionierung
- iPython Widgets: Haralds Empfehlungen für Interaktivität in den Notebooks
- JupyText: Notebooks als Makdown-Dokumente, Julia-, Python- oder R-Skripte
- jupyter{book}: HTML/PDF-Publikationen basierend auf Notebooks
- Einführung in Python für Informatik und Ingenieurswesen (mit JupyterBook)
- NBGrader: Kursverwaltung und automatisiertes Beurteilen von Notebooks Studierender mittels eingebetteter Tests
- NBVAL zur Validierung von Notebooks (erstellt von Hans)
(sih)