#34 Jupyter Notebooks

avatar
Hans Fangohr
avatar
Harald Schilly
avatar
Nico Kreiling

Notebooks sind im Data Science Umfeld allgegenwärtig, in anderen Bereichen der Informatik aber vielleicht noch weitgehend unbekannt. Deshalb erklärt Nico mit seinen Gästen Hans Fangohr und Harald Schilly sowohl 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 eingesetzt werden. Durch die Kombination von Dokumentation und ausführbarem Code eignen sie sich natürlich hervorragend für Schulungen, aber auch für die Dokumentation von Projekten und explorative und forschungslastigen Arbeiten. Zwar existieren zahlreiche Implementierungen von Notebooks (etwa Googles Colab oder Apache Zeppelin), das Jupyter-Ökosystem bestehend aus den klassischen Notebooks, dem Lab sowie dem Hub. Sie eint die gemeinsame Entstehungsgeschichte basierend auf der IPython-Konsole sowie das gemeinsame, JSON-basierte Dateiformat iypnb.

Dieses Dateiformat ermöglicht einen flüssigen Übergang zwischen verschiedenen Notebook-Implementierungen, die Ausführlichkeit sowie die Klammer-Struktur erschwert aber Versionskontrolle und macht Merge-Requests unübersichtlich. Wir unterhalten uns ausführlich über verschiedene Ansätze, etwa zu alternativen Formaten wie RMarkdown und dem percent-format und deren Synchroni JupyText.

Kommentare

Wenn ihr nicht im Data Science / Python Umfeld unterwegs seid: Kanntet ihr Jupyter Notebooks bereits? Wenn ja, wofür habt ihr sie eingesetzt: Hinterlasst mir einen Kommentar

Links

Jupyter

https://jupyter.org/: Übersichtsseite Projekt Jupyter

JupyterHub: Server für Notebooks mit Benutzerverwaltung

JupyterLab: moderne Implementation, multiple Dokumente, etc.

NBConvert: konvertierung nach plain Text, Python, LaTeX/PDF, HTML

Alternative Jupyter

Colab: Notebooks von Google

Zeppelin: Apache Alternativ Projekt

CoCalc: Echtzeit Synchronisation von Notebooks, uvm

Deepnote: Notebooks für Data Science, etc.

Nteract: Desktop App

Notebooks in einer IDE: PyCharm, VSCode etc.

Magics

Einige unserer Lieblings-Magic-Befehle (hier ist eine ausführlichere Liste)

# Load an external Plugin
%load_ext autoreload

# Automatically re-import libraries
%autoreload

# Messen der Ausführungszeit einerZelle
%timeit

# Ausführen eines notebooks im Namensraum des aktiven Notebooks
%run my_helper.ipynb 

# Den Inhalt der Zelle in eine Datei Schreiben
%%writefile <filename>

Weitere Plugins und Links

Sublime Features – ohne die Nico nicht leben kann.

Nico’s Opinionated Guide für Notebook Versionierung

IPython Widgets: Haralds Empfehlung für Interaktivität in Notebooks

JupyText: synchronisation von/nach anderen Text Formaten

NBGrader: Kursverwaltung und automatisiertes Beurteilen von Notebooks von Studierenden mittels eingebetteter Tests

Jupyter{Book} HTML/PDF Publikationen basierend auf Notebooks

Beispiel für Einfuehrung in Python (mit Jupyterbook)

NBVAL zur Validierung von Notebooks (erstellt von Hans)

MyBinder: Ad-hoc ausführen von Jupyter Notebook instanzen, keine Persistenz

Jupyter Book – Zur Erstellung von Büchern in building beautiful, publication-quality books

Nbgrader: automatisches Benoten von Notebooks im Unterricht

OSCOVIDA Projekt: Ein Projekt zur Visualisierung von Covid Daten mittels Jupyter

3 Antworten auf „#34 Jupyter Notebooks“

  1. Erstmal vorneweg: ich bin durch heise auf Techtiefen aufmerksam geworden und finde die ca. 6 Episoden, die ich bisher gehört habe, durchweg interessant und lehrreich – auch wenn ich die Sachen in meinem konkreten Arbeitsumfeld nicht anwenden kann.
    Nun zu den Notebooks: dachte zuerst, es geht um Hardware/Laptops. Mit Phyton hab ich garnix am Hut. Kenne das Konzept ein wenig von Maxima, einem Mathe-/Algebra-Programm.
    Dort allerdings finde ich die Eingabe in die Zellen nicht so wirklich bequem – da sehne ich mir einen ordentlichen Texteditor bzw. IDE herbei.

Schreibe einen Kommentar zu Mahatma Fatal Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.