← Glossar
Daten und Infrastruktur

Was ist Jupyter Notebooks?

Jupyter Notebook ist eine Open-Source-Computerumgebung, die Live-Codeausführung in Sprachen wie Python, R und Julia, Rich Text, mathematische Formeln und Datenvisualisierungen in einem einzigen interaktiven Webdokument kombiniert.

Geburt, Philosophie und literarische Programmierung

Jupyter Notebooks sind de facto der Arbeitsplatz für moderne Datenwissenschaft, maschinelles Lernen und akademische Forschung. Project Jupyter, ein unabhängiges Framework, wurde 2014 als Weiterentwicklung des 2001 von Fernando Perez gestarteten IPython-Projekts (Interactive Python) geboren.

Der Ursprung des Namens ist ein zweideutiger Hinweis:

  1. Eine Kombination der Buchstaben Julia, Python und R, drei bahnbrechende Open-Source-Sprachen des wissenschaftlichen Rechnens.
  2. Respekt vor den Notizbüchern, die der Astronom Galileo Galilei bei der Erforschung der Jupitermonde im Jahr 1610 führte.

Philosophisch basiert es auf dem Prinzip des „Literate Programming“ des Informatikers Donald Knuth: Programme sollten nicht nur geschrieben werden, damit Maschinen laufen, sondern in erster Linie, damit Menschen sie lesen und dem Gedankengang folgen können. Jupiter; Es kombiniert Ihre Hypothesen, Codes, visuellen Diagramme und Schlussfolgerungen in einem einzigen lebendigen Dokument.

Analogie: Ein traditionelles Python-Skript ist wie eine geschlossene Fabrik; Man gibt das Rohmaterial und bekommt nur das Endprodukt, ohne zu sehen, was drin ist. Jupyter Notebook hingegen ist wie eine transparente Küche und ein Rezeptbuch mit Schritt-für-Schritt-Fotos: Sie geben jede Zutat einzeln hinzu, probieren sie sofort, machen ein Foto und hängen Ihre Notizen direkt daneben an.

Systemarchitektur: Client, Server und Kernel

Die Jupyter-Infrastruktur basiert auf einer lose gekoppelten dreischichtigen Architektur:

  1. Client (Web-Oberfläche): Das ist das in Ihrem Browser laufende JavaScript/HTML5-Frontend (JupyterLab oder die klassische Benutzeroberfläche), mit dem Sie Zellen bearbeiten, ausführen und Ausgaben anzeigen können.
  2. Jupyter-Server (Tornado-basierter Webserver): Das auf Ihrem lokalen Computer oder einem Remote-Server laufende Backend, das das Dateisystem verwaltet, Sitzungen koordiniert und WebSocket-Verbindungen bereitstellt.
  3. Kernel: Die isolierte Sprache, die den Code tatsächlich ausführt. Für Python wird beispielsweise ipykernel, für R IRkernel und für Julia IJulia verwendet. Die Kommunikation zwischen dem Server und dem Kernel erfolgt im JSON-Format über branchenübliche ZeroMQ-Messaging-Sockets.

Interne Struktur der .ipynb-Datei: Obwohl Jupyter-Dokumente die Endung .ipynb haben, handelt es sich dabei eigentlich um hierarchische JSON-Dateien. Jeder Zelltyp (code, markdown), die Ausführungsreihenfolge (execution_count), der Quellcode (source) und die generierten Ausgaben (outputs · Text, HTML, PNG-Grafiken im Base64-Format) werden in diesem JSON-Objekt gespeichert.

Die Macht der Datenwissenschaft und die Fallstricke der Softwareentwicklung

  • Explorative Datenanalyse (EDA): Nachdem Datenwissenschaftler einen riesigen Datensatz einmal in den Arbeitsspeicher geladen haben, können sie in verschiedenen Zellen Daten bereinigen, Modelle trainieren und sie mit Matplotlib/Seaborn/Plotly visualisieren, ohne die stundenlangen Phasen des Laden in den Arbeitsspeicher wiederholen zu müssen.
  • Hidden-State-Risiko: Die Möglichkeit, Zellen statt in der Reihenfolge von oben nach unten in einer zufälligen Reihenfolge auszuführen (Out-of-Order-Execution), kann im Speicher verborgene zustandsbezogene Variablen hinterlassen. Dies kann dazu führen, dass andere Personen bei der Ausführung desselben Notizbuchs andere Ergebnisse erhalten oder Fehler verursachen (Reprodubilitätskrise).
  • Herausforderungen bei der Versionskontrolle (Git): Da .ipynb-Dateien rich outputs und Base64-Grafiken enthalten, ist es schwierig, Zeilendifferenzen (diff) in Git zu untersuchen und Merge-Konflikte zu lösen. Um dieses Problem zu umgehen, werden Tools wie jupytext (ein Tool, das Notizbücher mit sauberem Markdown oder Python-Skripten synchronisiert) und nbdime verwendet.

Fragen und Antworten

Was bedeutet Jupyter Notebook und woher kommt seine Bedeutung?

Jupyter-Name; Julia leitet sich von den Anfangsbuchstaben der Programmiersprachen Python und R ab und ist eine Anspielung auf die Jupiter-Beobachtungsnotizen des Astronomen Galileo. Es ist ein interaktives Notizbuch mit Live-Code und Rich Text.

Was ist der Unterschied zwischen Jupyter Notebook und einer Standard-Python-Datei (.py)?

.py-Dateien sind reine Textcodes, die von Anfang bis Ende in einem Stück kompiliert und ausgeführt werden. .ipynb hingegen ist eine JSON-Struktur, die den Code in segmentierten Zellen ausführen kann und Ausgaben, Tabellen und Grafiken direkt unter dem Code speichert.

Welche Beziehung besteht zwischen Google Colab und Jupyter Notebook?

Google Colab ist eine proprietäre Cloud-Variante der Jupyter Notebook-Infrastruktur, die in der Google Cloud läuft, kostenlose GPU- und TPU-Hardwarebeschleunigung bietet und keine Installation erfordert.

Wie stellt man sauberen Code und eine saubere Versionskontrolle in Jupyter Notebook sicher?

Der beste Ansatz besteht darin, die Zellausgaben zu löschen (Alle Ausgaben löschen), bevor die Codes an das Repository gesendet werden, die Zellen der Reihe nach von oben nach unten erneut auszuführen und das Dateiformat mit Tools wie Jupytext versionierbar zu machen.

Verwandte Begriffe

Verwandte Werkzeuge

Diese Erklärung wurde für TreScout mit KI in einfacher Sprache verfasst und maschinell übersetzt aus dem türkischen Original · maßgeblich ist die türkische Fassung. Wenn etwas falsch oder unvollständig wirkt, schreiben Sie an hello@trescout.com. Auf Türkisch lesen →