IPhyton und Jupyter

Warum IPython und Jupyter?

Python stößt schnell mit der eingebauten Shell an die Grenzen. An dieser Stelle steigt IPython als Open Source Kommandozeileninterpreter zum interaktiven Arbeiten in der Open Source Programmiersprache Python ein und erweitert die Python Shell. Mit neuen Funktionen, wie der Introspektion oder Rich-Media-Einbettung wird ein neuer Komfort der Python-Anwendungen entwickelt, wie man es bspw. bei MatLab kennt. Außerdem ist die Kombination des IPython Notebook und Sparks Python API eine leistungsstarke Kombination im Bereich Data Science. Somit bietet IPython eine umfangreiche Architektur für interaktives Computing mit folgenden Vorteilen:

Kernel für webbasierten Notebook mit Jupyter

Unbegrenzte Einbindung von Shell Kommandos

Leistungsstarke interaktive Shell

Flexibler Interpreter für eigene Projekte

Unterstützt zahlreiche Programmiersprachen

IPython – Befehle in Kernel eingeben Python-Prozess

Unterstützung der Verwendung von GUI-Toolkits (PyQt, PyGTK, tkinter) und interaktiven Datenvisualisierung

Einfach zu bedienenden, leistungsfähigen Tool für parallel computing

Mit Jupyter Notebook haben Sie die hervorragende Möglichkeit, in einer interaktiven Umgebung technische Berechnungen parallel durchführen zu können. Mit der Mischung aus Web- und Live-Berechnungen eignet sich Jupyter sehr gut für die Cloud. Die beschriebenen „notebooks“ haben außerdem folgende Vorteile:

Weitergabe von Ergebnissen entweder als Live-Berechnung oder in festem Format (HTML, PDF)

Für gemeinschatliches Arbeiten – mehrere Nutzer können Berechnungen durchführen, den Code modifzieren oder experimentieren

Ergebnisse werden nachvollziehbar dargestellt und können validiert sowie erweitert werden

Somit stellt Jupyter Notebook eine interaktive Nutzung im Python-Ökosystem dar. Durch „notebooks“ werden viele Anwendungsfälle abgedeckt, die von der Datenanalyse und -darstellung bis hin zu parallelen Berechnungen und Simulationen reichen. Mit den „notebook documents“ erhalten Sie eine komplette Aufzeichnung aller Berechnungen und können anderen Jupyter-Nutzern zur Verfügung gestellt werden.

Die Relevanz von Jupyter (blau) und IPython (rot) wird in einer Google-Trend Analyse über die letzten 5 Jahre deutlich. Insbesondere Jupyter erlangte durch seine Ausgliederung aus Python in den letzten Jahren enorme Popularität.

 

Entwicklung von IPython und Jupyter

IPython ist eine BSD-lizenzierte Open- Source-Software und wird regelmäßig aktualisiert. Die letzte monolithische Version war IPython 3.x, welche bspw. notebook-server und qtconsole beinhaltete. Innerhalb von IPython kam es zur Entwicklung zahlreicher Pakete, die nicht auf die Pythonumgebung abzielten, weshalb eine Umstrukturierung notwendig geworden ist. Mit der Version 4.0 erfolgten weitere Aufsplittungen in Module, wobei notebook web application, notebook-server, qzconsole oder auch messagequeue in das sprachunabhängiges Projekt Jupyter ausgelagert wurden. Ab diesem Zeitpunkt konnte eine getrennte Aktualisierung ermöglicht werden.

IPython aktuell in der Version 5.2 geht aus der SciPy-Softwareumgebung hervor, dessen Schwerpunkt auf der mathematischen Optimierung und dem wissenschaftlichen Rechnen liegt. Durch eine Integration von Matplotlib in die IPython-Notebookoberfläche ist dies ein ernstzunehmender Konkurrent für die Numerik-Software Matlab. Die Kombination von IPython und Matplotlib wird oft als PYlab bezeichnet.

 

Die BSD-Lizenz wurde im Jahr 1982 von der Berkeley Universität entwickelt. Eine Software, die unter BSD-Lizenz läuft, darf frei genutzt werden. Dabei ist das Kopieren, Verarbeiten und Verändern, abgesehen vom Copyright-Vermerk, erlaubt. Somit kann ein Programmierer eine, unter BSD-Lizenz laufende Bibliothek oder Programme ändern und ist nicht verpflichtet, den Quellcode mit zu veröffentlichen.

Mit Jupyter Notebook, welches sich von den Programmiersprachen Julia, Python und R ableitet, wird nun ein leistungsstarkes Werkzeug für die Analyse von Daten bereitgestellt. Mit der aktuellen Version 5 wurde das erste Major Release nach der Trennung von IPython veröffentlicht, womit vor allem die Nutzerfreundlichkeit verbessert wurde. Mittels Zell-Tagging lassen sich sowohl Zellinhalte zwischen Notebooks kopieren, Dateien im Dashboard sortieren als auch die Tabellendarstellung übersichtlicher gestalten.

Durch „notebook“ oder „notebook documents“ können sowohl Code- als auch Rich-Text-Elemente sowie diverse Medienformate dargestellt werden. Die Darstellung von Code-, Text- und Grafikelementen bieten einen optimalen Ort für die Beschreibung der Analyse und dem Zusammenfassen der Ergebnisse. Diese „notebooks“ werden von der Jupyter Notebook App produziert und ermöglichen die Analyse von Daten in Echtzeit.

Jupyter Notebook App ist eine Server-Client-Anwendung, wodurch eine Bearbeitung der „notebooks“ über den Webbrowser ermöglicht wird. Die Anwendung kann sowohl auf einem PC ohne Internet-Zugang als auch auf einem Server installiert bzw. ausgeführt werden. Die Hauptkomponenten von Jupyter sind Kernel und Dashboard. Mit dem Kernel wird der Code des Users ausgeführt und geprüft. Neben dem Kernel für den Python Code bietet außerdem die Jupyter Notebook App für andere Programmiersprachen einen Kernel. Mit dem Dashboard können nicht nur die „notebook documents“ geöffnet, sondern auch der Kernel verwaltet werden.

 

Weitere Programmiersprachen:

C++, C#, HTML, PHP, Javascript, Ruby, Scala u.v.m.

Sie wollen besser verstehen, was sich hinter IPython und Jupyter verbirgt? Sind Sie interessiert an Best Practices von IPython und Jupyter? Haben Sie weitere Fragen zu unseren Leistungen?