Was ist Jupyter Notebook? Datenanalyse erleichtert

Irgendwann müssen wir alle unsere Arbeit zeigen. Die meisten Programmierarbeiten werden entweder als Rohquellcode oder als kompilierte ausführbare Datei freigegeben. Der Quellcode enthält vollständige Informationen, die jedoch eher "erzählen" als "zeigen". Die ausführbare Datei zeigt uns, was die Software tut, aber selbst wenn sie mit dem Quellcode geliefert wird, kann es schwierig sein, genau zu verstehen, wie sie funktioniert.

Stellen Sie sich vor, Sie könnten den Code anzeigen und in derselben Benutzeroberfläche ausführen, sodass Sie Änderungen am Code vornehmen und die Ergebnisse dieser Änderungen sofort in Echtzeit anzeigen können. Genau das bietet Jupyter Notebook. 

Jupyter Notebook wurde erstellt, um das Zeigen der eigenen Programmierarbeit und das Mitmachen anderer zu vereinfachen. Mit Jupyter Notebook können Sie Code, Kommentare, Multimedia und Visualisierungen in einem interaktiven Dokument kombinieren, das natürlich als Notizbuch bezeichnet wird und gemeinsam genutzt werden kann , wiederverwendet und überarbeitet. 

Und da Jupyter Notebook über einen Webbrowser ausgeführt wird, kann das Notebook selbst auf Ihrem lokalen Computer oder auf einem Remote-Server gehostet werden. 

Jupyter Notebook Vorteile

Jupyter Notebook wurde ursprünglich für datenwissenschaftliche Anwendungen entwickelt, die in Python, R und Julia geschrieben wurden. Es ist in vielerlei Hinsicht für alle Arten von Projekten nützlich:

  • Datenvisualisierungen.  Die meisten Menschen haben ihren ersten Kontakt mit Jupyter Notebook über eine Datenvisualisierung, ein freigegebenes Notizbuch, das das Rendern eines Datensatzes als Grafik enthält. Mit Jupyter Notebook können Sie Visualisierungen erstellen, aber auch freigeben und interaktive Änderungen am freigegebenen Code und Datensatz vornehmen.
  • Code-Sharing.  Cloud-Dienste wie GitHub und Pastebin bieten Möglichkeiten zum Teilen von Code, sind jedoch weitgehend nicht interaktiv. Mit einem Jupyter-Notizbuch können Sie Code anzeigen, ausführen und die Ergebnisse direkt in Ihrem Webbrowser anzeigen.
  • Live-Interaktionen mit Code.  Jupyter Notebook-Code ist nicht statisch. Es kann schrittweise in Echtzeit bearbeitet und erneut ausgeführt werden, wobei das Feedback direkt im Browser bereitgestellt wird. Notebooks können auch Benutzersteuerelemente (z. B. Schieberegler oder Texteingabefelder) einbetten, die als Eingabequellen für Code verwendet werden können.
  • Codebeispiele dokumentieren. Wenn Sie einen Code haben und Zeile für Zeile erklären möchten, wie er funktioniert, und dabei Live-Feedback erhalten, können Sie ihn in ein Jupyter-Notizbuch einbetten. Das Beste ist, dass der Code weiterhin voll funktionsfähig ist. Sie können Interaktivität zusammen mit der Erklärung hinzufügen, gleichzeitig anzeigen und erzählen.

Jupyter Notebook-Komponenten

Jupyter-Notizbücher können verschiedene Arten von Zutaten enthalten, die jeweils in einzelne Blöcke unterteilt sind:

  • Text und HTML.  Nur Text oder Text, der in der Markdown-Syntax zum Generieren von HTML mit Anmerkungen versehen ist, kann jederzeit in das Dokument eingefügt werden. Das CSS-Styling kann auch inline eingefügt oder der Vorlage hinzugefügt werden, die zum Generieren des Notizbuchs verwendet wird.
  • Code und Ausgabe. Der Code in Jupyter Notebook-Notizbüchern ist normalerweise Python-Code, obwohl Sie in Ihrer Jupyter-Umgebung möglicherweise Unterstützung für andere Sprachen wie R oder Julia hinzufügen. Die Ergebnisse des ausgeführten Codes werden unmittelbar nach den Codeblöcken angezeigt, und die Codeblöcke können in beliebiger Reihenfolge ausgeführt und erneut ausgeführt werden, so oft Sie möchten. 
  • Visualisierungen. Grafiken und Diagramme können mithilfe von Modulen wie Matplotlib, Plotly oder Bokeh aus Code generiert werden. Wie die Ausgabe erscheinen diese Visualisierungen inline neben dem Code, der sie generiert. Code kann jedoch auch so konfiguriert werden, dass er bei Bedarf in externe Dateien geschrieben wird.
  • Multimedia. Da Jupyter Notebook auf Webtechnologie basiert, können alle auf einer Webseite unterstützten Multimedia-Typen angezeigt werden. Sie können sie als HTML-Elemente in ein Notizbuch aufnehmen oder sie programmgesteuert über das IPython.displayModul generieren .
  • Daten. Daten können in einer separaten Datei neben der .ipynb Datei bereitgestellt werden, aus der ein Jupyter-Notizbuch besteht, oder sie können programmgesteuert importiert werden, indem beispielsweise Code in das Notizbuch aufgenommen wird, um die Daten aus einem öffentlichen Internet-Repository herunterzuladen oder über eine Datenbank darauf zuzugreifen Verbindung.

Anwendungsfälle für Jupyter Notebooks

Die häufigsten Anwendungsfälle für Jupyter Notebook sind Datenwissenschaft, Mathematik und andere Forschungsprojekte, bei denen Daten oder Formeln visualisiert werden. Abgesehen von diesen gibt es jedoch viele andere Anwendungsfälle:

  • Teilen einer Visualisierung mit oder ohne Interaktivität.  Menschen teilen die Ergebnisse einer Datenvisualisierung oft als statisches Bild, aber das ist nur bis zu einem gewissen Punkt nützlich. Indem Sie ein Jupyter-Notizbuch freigeben, können Ihre Zielgruppe eintauchen und herumspielen. Sie können interaktiv ein gründliches Verständnis der Daten erlangen.
  • Einen Prozess mit Code dokumentieren. Viele Programmierer, die über ihre Programmiererfahrungen bloggen, schreiben ihre Beiträge in ein Jupyter-Notizbuch. Andere können ihr Notizbuch herunterladen und die Übung neu erstellen.
  • Live-Dokumentation für eine Bibliothek oder ein Modul. Die meiste Dokumentation für Python-Module ist statisch. Ein Jupyter-Notizbuch kann als interaktive Sandbox verwendet werden, um zu lernen, wie ein Modul funktioniert. Jedes Python-Modul, das in einer Notebook-Oberfläche gut läuft (im Wesentlichen alles, worauf es stdoutals Teil seines Verhaltens schreibt ), ist dafür ein guter Kandidat.
  • Code und Daten allgemein teilen.  Alles, was Sie tun müssen, um ein Jupyter-Notizbuch und die zugehörigen Datendateien freizugeben, ist, es in ein Archiv zu packen.

JupyterLab

Eine Benutzeroberfläche der nächsten Generation für Jupyter Notebook mit dem Namen JupyterLab ist jetzt verfügbar und gilt als produktionsbereit.

Wie in dem Blogbeitrag erläutert, in dem die allgemeine Verfügbarkeit angekündigt wird, ist JupyterLab formbarer als ein herkömmliches Jupyter-Notizbuch. Benutzer können Zellen innerhalb und zwischen Notizbüchern ziehen und ablegen und den Arbeitsbereich in separate Registerkarten und Unterabschnitte unterteilen. Code kann sowohl aus Textdateien als auch aus Jupyter Notebook-Dateien direkt ausgeführt werden, und viele gängige Dateiformate für Code und Daten können mit Live-Vorschau gerendert werden.

JupyterLab kann auch mit Erweiterungen angepasst werden, um Unterstützung für neue Dateiformate hinzuzufügen, die Benutzeroberfläche zu erweitern oder eine Reihe anderer zusätzlicher Funktionen bereitzustellen, die eine viel breitere Palette von Notebook-Anwendungen als Jupyter Notebook ermöglichen. Langfristig ist geplant, die aktuelle Jupyter Notebook-Schnittstelle durch JupyterLab zu ersetzen, jedoch erst, nachdem sich JupyterLab als ausreichend stabil und zuverlässig erwiesen hat.

Jupyter Notebook Einschränkungen

So leistungsfähig und nützlich Jupyter Notebook auch sein mag, es gibt einige Einschränkungen, die berücksichtigt werden müssen.

  • Notebooks sind nicht in sich geschlossen. Dies ist der größte Nachteil bei der Verwendung von Jupyter Notebook: Notebooks benötigen die Jupyter-Laufzeit sowie alle Bibliotheken, die Sie verwenden möchten. Es gibt einige Strategien zum Erstellen von eigenständigen Jupyter-Notizbüchern, von denen jedoch keine offiziell unterstützt wird. Am besten verteilen Sie Notebooks an Personen, die bereits über eine entsprechende Infrastruktur verfügen, oder kümmern sich nicht um die Einrichtung (z. B. über Anaconda).
  • Der Sitzungsstatus kann nicht einfach gespeichert werden.  Der Status von Code, der in einem Jupyter-Notizbuch ausgeführt wird, kann mit dem Standard-Toolset von Jupyter Notebook nicht beibehalten und wiederhergestellt werden. Jedes Mal, wenn Sie das Notizbuch laden, müssen Sie den darin enthaltenen Code erneut ausführen, um seinen Status wiederherzustellen.
  • Kein interaktives Debugging oder andere IDE-Funktionen.  Jupyter Notebook ist keine vollständige Entwicklungsumgebung für Python. Viele der Funktionen, die Sie in einer IDE erwarten würden, z. B. interaktives Debuggen, Code-Vervollständigung und Modulverwaltung, sind dort nicht verfügbar.