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.
Inhalt
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.
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