Jupyter Notebook: Webdokumente für Datenanalyse, Live-Coding und mehr

Ein reibungsloser Ablauf bei der Arbeit im Team ist in vielen Branchen von elementarer Bedeutung. Tools zur Kommunikation und für die Organisation und Versionierung von Arbeitsschritten und Projektdaten sind deshalb nahezu unverzichtbar geworden. Für die Datenwissenschaft und -simulation existieren verschiedene Anwendungen, die versuchen, diesen Ansprüchen gerecht zu werden. So schafft die webbasierte Lösung Jupyter Notebook beispielsweise eine nahtlose Brücke zwischen Programmcode und erklärendem Text – und ermöglicht Nutzern auf diese Weise, Code, Gleichungen, Visualisierungen usw. inklusive erläuternder Informationen in Echtzeit zu kreieren und auszutauschen. Was steckt hinter der Open-Source-Anwendung, die vom Project Jupyter entwickelt und betreut wird?

Was ist Jupyter Notebook?

Jupyter Notebook ist eine Client-Server-Anwendung der Non-Profit-Organisation Project Jupyter, die 2015 veröffentlicht wurde. Sie ermöglicht die Kreation und das Teilen von Webdokumenten im JSON-Format, die einem versionierten Schema und einer geordneten Liste von Input-/Output-Zellen folgen. Diese Zellen bieten u. a. Platz für Code, Markdown-Text, mathematische Formeln und Gleichungen oder Medieninhalte (Rich Media). Die Bearbeitung funktioniert dabei über die webbasierte Client-Anwendung, die sich mit handelsüblichen Browsern starten lässt. Voraussetzung ist, dass auf dem System auch der Jupyter-Notebook-Server installiert ist und ausgeführt wird. Die erstellten Jupyter-Dokumente lassen sich u. a. als HTML-, PDF-, Markdown- oder Python-Dokumente exportieren oder alternativ per E-Mail, Dropbox, GitHub oder den hauseigenen Jupyter Notebook Viewer mit anderen Nutzern teilen.

Hinweis

Der Projektname „Jupyter“ geht auf die drei Kern-Programmiersprachen Julia, Python und R zurück.

Die beiden zentralen Komponenten von Jupyter Notebook sind ein Set verschiedener Kernels (Interpreter) sowie das Dashboard. Kernels sind kleine Programme, die sprachspezifische Requests verarbeiten und mit entsprechenden Antworten reagieren. Standard-Kernel ist IPython, ein Kommandozeilen-Interpreter, der das Arbeiten mit Python ermöglicht. Über 50 weitere Kernels bringen Unterstützung für andere Sprachen wie C++, R, Julia, Ruby, JavaScript, CoffeeScript, PHP oder Java. Das Dashboard dient einerseits als Verwaltungsoberfläche für die einzelnen Kernels, andererseits als Zentrale für die Erstellung neuer Notebook-Dokumente bzw. das Öffnen bereits existierender Projekte. Jupyter Notebook steht unter einer modifizierten BSD-Lizenz und damit allen Nutzern frei zur Verfügung.

Wie unterscheidet sich Jupyter Notebook von JupyterHub und JupyterLab?

Jupyter Notebook ist nicht das einzige Open-Source-Angebot des Jupyter-Projekts: Mit JupyterHub und JupyterLab offeriert das Entwicklerteam zwei weitere Services, die eng mit der interaktiven Code-Umgebung verknüpft sind.

Bei JupyterHub handelt es sich um einen Multi-User-Server inklusive Proxy, der mehrere Jupyter-Notebook-Instanzen miteinander verknüpft. Dieser kann entweder in der Cloud oder auf eigener Hardware gehostet werden und ermöglicht die Nutzung einer gemeinsamen Notebook-Umgebung. Der Serveradministrator verwaltet den gemeinschaftlichen Zugriff auf die jeweiligen Dokumente nach Belieben (eine Authentifizierungsmethode ist implementierbar), während sich die einzelnen Benutzer gänzlich auf die eigenen Aufgaben konzentrieren können. Detaillierte Informationen über die Installation und das Hosting von JupyterHub bietet das offizielle GitHub-Repository der Multi-User-Lösung.

JupyterLab ist der offizielle Nachfolger von Jupyter Notebook und befindet sich seit Juli 2019 in der Version 1.0, soll das Basisprogramm aber über lange Sicht ablösen. Im Vergleich zu diesem bietet JupyterLab nämlich mehr Optionen zur Anpassung und Interaktion und ist darüber hinaus noch einfacher zu erweitern. So lassen sich in der komplett überarbeiteten Benutzeroberfläche nicht nur Texteditoren, Terminals und andere Komponenten parallel zu den Notebook-Dokumenten öffnen und anzeigen, sondern auch Verknüpfungen zu Google Drive und weiteren Cloud-Diensten, zusätzliche Menüpunkte oder Tastenkürzel implementieren, um die Arbeit mit der Code-Umgebung noch einfacher zu gestalten.

Für welche Einsatzzwecke ist Jupyter Notebook geeignet?

Jupyter Notebook stellt eine Umgebung zur Verfügung, die perfekt auf die Anforderungen und den Workflow von Datenwissenschaft und -simulation zugeschnitten ist. In einer einzigen Instanz können Nutzer Code schreiben, dokumentieren und ausführen, Daten visualisieren, Berechnungen durchführen und die entsprechenden Resultate begutachten. Insbesondere in der Prototyp-Phase profitieren sie dabei von der Tatsache, dass jeglicher Code in unabhängigen Zellen untergebracht werden kann: So ist es möglich, spezifische Codeblöcke individuell zu testen. Dank der zahlreichen Zusatzkernels ist Jupyter dabei nicht auf Python als Programmiersprache beschränkt, was eine Menge Flexibilität bei der Codierung und Analyse bedeutet.

Zu den wichtigsten Einsatzzwecken von Jupyter Notebook zählen:

  • Datenbereinigung: Unterscheidung zwischen wichtigen und unwichtigen Daten in der Big-Data-Analyse
     
  • Statistische Modellierung: mathematische Methode zur Ermittlung der geschätzten Verteilungswahrscheinlichkeit eines bestimmten Merkmals
     
  • Kreation und Training von Machine-Learning-Modellen: Entwurf, Programmierung und Training von Modellen, die auf Machine-Learning basieren
     
  • Datenvisualisierung: grafische Darstellung von Daten zur Verdeutlichung von Mustern, Trends, Abhängigkeiten etc.

Wie funktioniert die Nutzung von Jupyter Notebook?

Wer die Möglichkeiten von Jupyter Notebook nutzen möchte, muss Client- und Serveranwendung der praktischen Code-Umgebung zunächst auf seinem System (oder alternativ in der Cloud) installieren. Einzige Voraussetzung ist, dass eine aktuelle Version von Python ebenfalls installiert ist. Das Jupyter-Team empfiehlt aus diesem Grund den Download der Anaconda-Distribution, die sowohl Jupyter Notebook als auch Python sowie diverse weitere Software-Pakete für Datenwissenschaft, wissenschaftliches Rechnen und Co. bereithält. Im Anschluss an die Installation lässt sich der Notebook-Server über die Kommandozeile starten und dann das Dashboard im Browser der Wahl über die URL localhost:8888 (Localhost) aufrufen.

Dort legen Nutzer neue Ordner im Jupyter-Notebook-Verzeichnis an, öffnen den integrierten Texteditor und das Terminal oder starten ein neues Jupyter-Projekt. Jedes neu angelegte Projekt enthält dabei zunächst lediglich ein einzelnes, leeres Eingabefeld. Über die Menüleiste lassen sich weitere Felder hinzufügen, Bibliotheken importieren oder Widgets (interaktive Elemente) einbetten. Zudem bietet die Leiste Schaltflächen, um fertige Codes auszuführen und zu stoppen, das gesamte Dokument zu speichern oder zu exportieren sowie um den zugrundeliegenden Kernel auszuwählen.

Tipp

Auf der offiziellen Jupyter-Homepage gibt es die Möglichkeit, Jupyter Notebook ohne Installation zu testen.

Die Vorteile von Jupyter Notebook im Überblick

Wer Skripte schreiben und in Echtzeit testen, Daten visualisieren oder komplexe mathematische Berechnungen ausführen will, hat mit Jupyter Notebook eine erstklassige Lösung zur Hand. Ergebnisse lassen sich mit wenigen Klicks und in diversen Formaten exportieren oder direkt per Mail verschicken. Nutzer des Multi-User-Services JupyterHub können die „Notebooks“ sogar gemeinsam bearbeiten, um das jeweilige Projekt im Team optimal voranzubringen. Da Jupyter in Python geschrieben ist, haben Python-Spezialisten beim Einsatz der Open-Source-Anwendung zwar Heimvorteil – dank diverser, einsatzfertiger Interpreter für andere Sprachen ist aber auch das Coden mit anderen Größen wie C++, PHP oder Java problemlos möglich.

Die Vorteile von Jupyter Notebook in der Zusammenfassung:

  • Open Source (modifizierte BSD-Lizenz)
  • kostenlos nutzbar
  • browserbasiert
  • Live-Code
  • diverse Optionen zum Exportieren und Teilen der Ergebnisse
  • Versionsverwaltung
  • Zusammenarbeit möglich (JupyterHub)
  • über 50 unterstützte Programmiersprachen
War dieser Artikel hilfreich?
Page top