Du hast gerade angefangen, Jupyter Notebook oder Jupyter Lab zu benutzen? Oder Du möchtest einfach schneller werden und nicht immer die Maus benutzen? Dann sind die folgenden Shortcuts genau das richtige für Dich. Eilige springen direkt zu den Shortcuts, vorher aber ein bisschen nützliches Hintergrundwissen.

Was ist Jupyter Notebook?

Jupyter Notebook ist einerseits ein Datei-Format mit der Endung ipynb, um formatierten Text, Code und den Codeoutput wie Grafiken, Tabellen etc. in einem Dokument darzustellen. Im Prinzip ist es nur eine JSON-Datei. Ursprünglich für Julia, Python und R (daher der Name Jupyter) mit Schwerpunkt Python entwickelt, können die Dokumente jede beliebige Programmiersprache enthalten. Sinnvoll sind aber nur die, die auch von dem Programm Jupyter Notebook bzw. Jupyter Lab unterstützt werden. Es gibt aktuell ca. 50 Programmiersprachen, die einen sogenannten Kernel für Jupyter haben.

Jupyter Notebooks sind in der Data Science Welt recht verbreitet. Zum Beispiel findet man viele Data Science-Notebooks sowohl für Python als auch R auf Kaggle. Github unterstützt übrigens auch das Dateiformat, so dass die Dateien auf Github korrekt angezeigt werden. So gibt es das Buch Python Data Science Handbook komplett als Notebooks auf Github.

Die Software Jupyter Notebook ist eine webbasierte Oberfläche, um eben ipynb-Dateien zu erstellen. Sie als vollwertige Entwicklungsumgebung zu bezeichnen, wäre stark übertrieben. Aber gerade für die explorative Datenanalyse oder für eine Adhoc-Analyse mit Visualisierungen oder auch zum Lernen ist Jupyter Notebook bestens geeignet. Die fertigen Notebooks können dann auch als HTML oder PDF exportiert werden.

Jupyter Notebook ist in der Anaconda-Distribution enthalten, kann aber auch über pip oder conda installiert werden. Wenn Du mehr über Anaconda wissen willst, findest Du in meinem Blogartikel Die Python-Distribution Anaconda.

Nachfolger mit mehr und besseren Features ist Jupyter Lab.

Jupyter Notebook oder Jupyter Lab? Was ist besser?

Klare Sache, benutzt Jupyer Lab! Das ist der offizielle Nachfolger von Jupyter Notebook und wird diesen also bald komplett ersetzen. Jupyter Lab bietet zum Beispiel mehrere Tabs in einem Browserfenster. Auch kann eine Konsole zusätzlich angezeigt werden und nach und nach kann man auch auf verschiedene Erweiterungen zugreifen. Das Dateiformat hat sich nicht geändert, man arbeitet also immer noch mit ipynb-Dateien, nur der Editor ist sozusagen komfortabler geworden.

Aufbau eines Notebooks

Ein Notebook besteht aus Zellen, welche man mit Abschnitten oder Kapiteln übersetzen kann. Eine Zelle enthält entweder formatierten Text in Form von Markdown oder Code. Markdown-Zellen können also Überschriften, Links, Grafiken, mathematische Formeln (Latex) oder auch Tabellen enthalten. Hat man eine Codezelle ausgeführt, wird darunter der Output angezeigt, egal ob das nun Text aus der Konsole oder eine schicke Grafik ist.

Beispiel für ein Jupyter Notebook mit Python Code

Die zwei Modi: Navigation und Editieren

Entweder will man etwas in eine Zelle schreiben. Das ist der Editiermodus. Aus dem Navigationsmodus wechselt man in ihn durch Drücken der ENTER-Taste.

Oder man will zwischen den Zellen hin- und herspringen, neue Zellen einfügen, Zellen löschen, etc. Das ist der Navigationsmodus bzw. Befehlsmodus. In diesen wechselt man durch Drücken der ESC-Taste.

 

Die wichtigsten Shortcuts für Jupyter Lab

So, hier kommen nun die wichtigsten Shortcuts. Es sind gar nicht so viele, aber für das Programmieren sind sie extrem nützlich. Insbesondere die Navigation zwischen den Zellen, ohne Maus oder Touchpad zu benutzen, beschleunigt Deine Arbeit erheblich.

Shortcut Modus Beschreibung
ENTER Navi wechselt in den Editier-Modus
ESC Edit wechselt in den Navigations-Modus
B Navi eine neue Zelle unterhalb einfügen (B für below)
A Navi eine neue Zelle oberhalb einfügen (A für above)
D, D Navi Löschen einer Zelle (zweimaliges Drücken von D)
STRG + ENTER beide führt den Code aus und bleibt in der Zelle
SHIFT + ENTER beide führt den Code aus und springt in die nächste Zelle bzw. legt eine neue Zelle an
y Navi Wechselt den Zelltyp zu Code
m Navi Wechselt den Zelltyp zu Markdown
STRG + SHIFT + C beide Öffnet die Command Console (Achtung: Hat sich zu Jupyter Notebook geändert, dort war es STRG + SHIFT + P)
TAB Edit Autocomplete (angefangener Befehl wird ergänzt)
X Navi Zelle ausschneiden
C Navi Zelle kopieren
V Navi Zelle einfügen
SHIFT + TAB Edit Hilfe zu dem Befehl aus DocString
STRG + SHIFT + – Edit Teilt die Zelle an der Cursorposition
SHIFT + M Navi Fügt ausgewählte Zellen zusammen zu einer Zelle
STRG + B beide Blendet die Sidebar links aus/ein. So hat man mehr Platz für den Code
STRG + POS1 Edit Springt an den Anfang der aktiven Zelle
STRG + ENDE Edit Springt an das Ende der aktiven Zelle

 

Natürlich kann man auch eigene Shortcuts definieren. Das geht im Menü unter Settings -> Advanced Settings Editor -> Keyboard Shortcuts. Ganz so bequem ist es allerdings nicht, man muss etwas JSON kopieren und anpassen. Links sind die Voreinstellungen vom System, rechts kann man eigene Definitionen benutzen. Dazu muss man wissen, wie das command heißt, das kann man aber leicht über die Command Console (STRG + SHIFT + C) herausfinden. Zudem muss man den selector kennen. Also am besten schaut man sich die System-Shortcuts an oder sucht im Internet.

Hier ein Beispiel, wie sowas aussehen kann:

{
 "shortcuts": [
   {
    "command": "application:activate-next-tab",
    "keys": ["Ctrl Shift ]"],
    "selector": "body"
   },
   {
    "command": "application:activate-previous-tab",
    "keys": ["Ctrl Shift ["],
    "selector": "body"
   }
  ]
}

 

Die Dokumentation von Jupyter Lab ist ansonsten immer ein guter Ausgangspunkt, wenn man etwas verstehen möchte.

Happy Jupytering,

Euer Holger