So optimieren Sie Ihr Jupyter-Notebook

Einführung

Jupyter Notebook ist heutzutage wahrscheinlich die am häufigsten verwendete Umgebung zum Lösen von Aufgaben des maschinellen Lernens / Data Science in Python.

Jupyter Notebook ist eine Client-Server-Anwendung, mit der Notebook-Dokumente im Browser ausgeführt werden. Notizbuchdokumente sind Dokumente, die sowohl Code- als auch Rich-Text-Elemente wie Absätze, Gleichungen usw. enthalten können.

In diesem Artikel werde ich Sie durch einige einfache Tricks führen, wie Sie Ihre Erfahrung mit Jupyter Notebook verbessern können. Wir werden von nützlichen Verknüpfungen ausgehen und am Ende Themen, automatisch generierte Inhaltsverzeichnisse und mehr hinzufügen.

Verknüpfungen

Verknüpfungen können sehr nützlich sein, um das Schreiben Ihres Codes zu beschleunigen. Ich werde Sie nun durch einige der Verknüpfungen führen, die ich in Jupyter am nützlichsten fand.

Es gibt zwei Möglichkeiten, mit Jupyter Notebook zu interagieren: Befehlsmodus und Bearbeitungsmodus. Einige Verknüpfungen funktionieren nur in dem einen oder anderen Modus, während andere beiden Modi gemeinsam sind.

Einige Verknüpfungen, die in beiden Modi üblich sind, sind:

  • Strg + Eingabetaste : Zum Ausführen aller ausgewählten Zellen
  • Umschalt + Eingabetaste : Führen Sie die aktuelle Zelle aus und verschieben Sie die nächste
  • Strg + s : Notebook speichern

Um in den Jupyter-Befehlsmodus zu gelangen, müssen wir Esc und dann einen der folgenden Befehle drücken:

  • H : Alle im Jupyter Notebook verfügbaren Verknüpfungen anzeigen
  • Umschalt + Aufwärts- / Abwärtspfeil : Zum gleichzeitigen Auswählen mehrerer Notebookzellen (durch Drücken der Eingabetaste nach Auswahl mehrerer Zellen werden alle ausgeführt!).
  • A : Fügen Sie oben eine neue Zelle ein
  • B : Fügen Sie unten eine neue Zelle ein
  • X : Schneiden Sie die ausgewählten Zellen aus
  • Z : Löschen Sie das Löschen einer Zelle
  • Y : Ändern Sie den Zelltyp in Code
  • M : Ändern Sie den Zelltyp in Markdown
  • Leertaste : Notizbuch nach unten scrollen
  • Umschalt + Leertaste : Notizbuch nach oben scrollen

Um stattdessen in den Jupyter-Bearbeitungsmodus zu wechseln, müssen Sie die Eingabetaste drücken und nacheinander einen der folgenden Befehle ausführen:

  • Tab : Vorschläge für Code-Wettbewerbe
  • Strg +] : Code einrücken
  • Strg + [ : dedent Code
  • Strg + z : Rückgängig machen
  • Strg + y : Wiederholen
  • Strg + a : Alle auswählen
  • Strg + Home : Bewegen Sie den Cursor zum Zellenstart
  • Strg + Ende : Bewegen Sie den Cursor an das Ende der Zelle
  • Strg + Links : Bewegen Sie den Cursor ein Wort nach links
  • Strg + Rechts : Bewegen Sie den Cursor ein Wort nach rechts

Shell-Befehle und Paketinstallation

Dies ist nicht vielen Benutzern bekannt, aber es ist möglich, Shell-Befehle in einer Jupyter-Notizbuchzelle auszuführen, indem am Anfang der Zelle ein Ausrufezeichen eingefügt wird. Wenn Sie beispielsweise eine Zelle mit ! Ls ausführen, werden alle Elemente im aktuellen Arbeitsverzeichnis zurückgegeben. Wenn Sie eine Zelle mit ! Pwd ausführen, wird stattdessen der aktuelle Verzeichnisdateipfad ausgedruckt.

Dieser Trick kann auch angewendet werden, um Python-Pakete in Jupyter Notebook zu installieren.

!pip install numpy

Jupyter-Themen

Wenn Sie das Aussehen Ihres Jupyter-Notebooks ändern möchten, können Sie ein Paket mit einer Sammlung verschiedener Themen installieren. Das Standard-Jupyter-Thema sieht wie in Abbildung 1 aus. In Abbildung 2 sehen Sie, wie wir seinen Aspekt personalisieren können.

Wir können unser Paket mit dem Trick, den ich Ihnen im vorherigen Abschnitt gezeigt habe, direkt im Notebook installieren:

!pip install jupyterthemes

Wir können den folgenden Befehl ausführen, um die Namen aller verfügbaren Themen aufzulisten:

!jt -l # Cell output: # Available Themes: # chesterish # grade3 # gruvboxd # gruvboxl # monokai # oceans16 # onedork # solarizedd # solarizedl

Schließlich können wir mit dem folgenden Befehl ein Thema auswählen (in diesem Beispiel habe ich mich für das Thema solarized1 entschieden):

!jt -t solarizedl

Sobald wir diesen Befehl ausgeführt und die Seite aktualisiert haben, sollte unser Notizbuch wie in Abbildung 2 aussehen.

Wenn Sie jederzeit zum ursprünglichen Jupyter-Notizbuch-Thema zurückkehren möchten, können Sie einfach den folgenden Befehl ausführen und Ihre Seite aktualisieren.

!jt -r

Jupyter Notebook-Erweiterungen

Notebook-Erweiterungen können verwendet werden, um die Benutzererfahrung zu verbessern und eine Vielzahl von Personalisierungstechniken anzubieten.

In diesem Beispiel verwende ich die Bibliothek nbextensions , um alle erforderlichen Widgets zu installieren (diesmal empfehle ich Ihnen, die Pakete zuerst über das Terminal zu installieren und dann das Jupyter-Notizbuch zu öffnen). Diese Bibliothek verwendet verschiedene Javascript-Modelle, um das Notebook-Frontend zu bereichern.

! pip install jupyter_contrib_nbextensions ! jupyter contrib nbextension install --system

Sobald nbextensions installiert ist, werden Sie feststellen, dass auf Ihrer Jupyter-Notebook-Homepage eine zusätzliche Registerkarte vorhanden ist (Abbildung 3).

Durch Klicken auf die Registerkarte Nbextensions erhalten wir eine Liste der verfügbaren Widgets. In meinem Fall habe ich beschlossen, die in Abbildung 4 gezeigten zu aktivieren.

Einige meiner Lieblingserweiterungen sind:

  1. Inhaltsverzeichnis

Auto-generate a table of contents from markdown headings (Figure 5).

2. Snippets

Sample codes to load common libraries and create sample plots which you can use as a starting point for your data analysis (Figure 6).

3. Hinterland

Code autocompletion for Jupyter Notebooks (Figure 7).

The nbextensions library provides many other extensions apart for these three, so I encourage you to experiment and test any other which can be of interest for you!

Markdown Options

By default, the last output in a Jupyter Notebook cell is the only one that gets printed. If instead we want to automatically print all the commands without having to use print(), we can add the following lines of code at the beginning of the notebook.

from IPython.core.interactiveshell import InteractiveShell InteractiveShell.ast_node_interactivity = "all"

Additionally, it is possible to write LaTex in a Markdown cell by enclosing the text between dollar signs ($).

Notebook Slides

It is possible to create a slideshow presentation of a Jupyter Notebook by going to View -> Cell Toolbar -> Slideshow and then selecting the slides configuration for each cell in the notebook.

Finally, by going to the terminal and typing the following commands the slideshow will be created.

pip install jupyter_contrib_nbextensions # and successively: jupyter nbconvert my_notebook_name.ipynb --to slides --post serve

Magic

Magics are commands which can be used to perform specific commands. Some examples are: inline plotting, printing the execution time of a cell, printing the memory consumption of running a cell, and so on.

Magic commands which start with just one % apply their functionality just for one single line of a cell (where the command is placed). Magic commands which instead start with two %% are applied to the whole cell.

It is possible to print out all the available magic commands by using the following command:

%lsmagic

Contact info

If you want to keep updated with my latest articles and projects follow me and subscribe to my mailing list. These are some of my contact details:

  • Linkedin
  • Personal Blog
  • Personal Website
  • Medium Profile
  • GitHub
  • Kaggle

Cover photo from this article.