A Jupyter Notebook optimalizálása

Bevezetés

A Jupyter Notebook manapság valószínűleg a leggyakrabban használt környezet a Machine Learning / Data Science feladatok megoldásához a Pythonban.

A Jupyter Notebook egy kliens-szerver alkalmazás, amelyet notebook dokumentumok futtatásához használnak a böngészőben. A notebook dokumentumok olyan kódok, amelyek tartalmazhatnak kódot és gazdag szöveges elemeket is, például bekezdések, egyenletek stb.

Ebben a cikkben néhány egyszerű trükköt ismertetek, hogyan javíthatja a Jupyter Notebook használatával szerzett tapasztalatait. Hasznos parancsikonokból indulunk ki, és végül hozzáadunk témákat, automatikusan létrehozott tartalomjegyzéket és még sok mást.

Parancsikonok

A parancsikonok valóban hasznosak lehetnek a kódírás felgyorsításában. Most végigvezetem néhány olyan parancsikonon, amelyeket a Jupyterben a leghasznosabbnak találtam.

Kétféle módon lehet kommunikálni a Jupyter Notebookkal: Parancs mód és Szerkesztés mód. Egyes parancsikonok csak egyik vagy másik módban működnek, míg mások mindkét módban közösek.

Néhány gyorsbillentyű, amely mindkét módban gyakori:

  • Ctrl + Enter : az összes kijelölt cella futtatásához
  • Shift + Enter : az aktuális cella futtatása és a következő áthelyezése
  • Ctrl + s : jegyzetfüzet mentése

A Jupyter parancs módba való belépéshez meg kell nyomnunk az Esc billentyűt, majd a következő parancsok bármelyikét:

  • H : a Jupyter Notebook összes elérhető parancsikonjának megjelenítése
  • Shift + Fel / Le nyíl : több notebook cellának kiválasztása egyszerre (az enter megnyomásával több cella kiválasztása után mindegyik futtatható lesz!)
  • V : Helyezzen be egy új cellát fent
  • B : Helyezzen be egy új cellát alul
  • X : vágja ki a kijelölt cellákat
  • Z : visszavonja a cella törlését
  • Y : a cellatípus módosítása kódra
  • M : a cellatípus módosítása Markdownra
  • Szóköz : görgesse lefelé a jegyzetfüzetet
  • Shift + szóköz : görgesse fel a jegyzetfüzetet

Ahhoz, hogy ehelyett Jupyter szerkesztési módba lépjünk, meg kell nyomnunk az Enter billentyűt és egymás után a következő parancsok bármelyikét:

  • Tab : kódverseny javaslatok
  • Ctrl +] : behúzási kód
  • Ctrl + [ : dedent kód
  • Ctrl + z : visszavonás
  • Ctrl + y : újra
  • Ctrl + a : az összes kijelölése
  • Ctrl + Home : a kurzor áthelyezése a cellakezdésre
  • Ctrl + End : mozgassa a kurzort a cella végére
  • Ctrl + Bal : a kurzor mozgatása egy szóval balra
  • Ctrl + Jobb : a kurzor mozgatása egy szóval jobbra

Shell parancsok és csomagok telepítése

Nem sok felhasználó ismeri ezt, de héjparancsok futtathatók a Jupyter notebook cellájában egy felkiáltójel hozzáadásával a cella elejére. Például, ha egy cellát futtat ! Ls -sel, akkor az aktuális munkakönyvtár összes elemét visszaadja. Ha egy cellát futtat a ! Pwd paranccsal, akkor az az aktuális könyvtárfájl útvonalat nyomtatja ki.

Ugyanez a trükk alkalmazható a Python csomagok Jupyter notebookba történő telepítésére is.

!pip install numpy

Jupyter témák

Ha érdekli a Jupyter noteszgép küllemének megváltoztatása, lehetőség van különféle témák gyűjteményét tartalmazó csomag telepítésére. Az alapértelmezett Jupyter téma úgy néz ki, mint az 1. ábrán. A 2. ábrán láthatja, hogyan tudjuk személyre szabni az aspektusát.

Telepíthetjük csomagunkat közvetlenül a notebookba az előző szakaszban bemutatott trükk segítségével:

!pip install jupyterthemes

A következő parancsot futtathatjuk az összes elérhető téma nevének felsorolásához:

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

Végül kiválaszthatunk egy témát a következő paranccsal (ebben a példában úgy döntöttem, hogy a solarized1 témát használom):

!jt -t solarizedl

Miután futtattuk ezt a parancsot és frissítettük az oldalt, a jegyzetfüzetünknek úgy kell kinéznie, mint a 2. ábrán.

Abban az esetben, ha bármikor vissza akar térni az eredeti Jupyter notebook témához, futtassa a következő parancsot, és frissítse oldalát.

!jt -r

Jupyter Notebook kiterjesztések

A notebook kiterjesztésekkel javítható a felhasználói élmény, és sokféle személyre szabási technika kínálható.

Ebben a példában az nbextensions könyvtárat fogom használni az összes szükséges widget telepítéséhez (ezúttal azt javaslom, hogy először telepítse a csomagokat a terminálon keresztül, majd nyissa meg a Jupyter notebookot). Ez a könyvtár különféle Javascript modelleket használ a notebook felületének gazdagítása érdekében.

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

Az nbextensions telepítése után észreveszi, hogy van egy extra fül a Jupyter notebook kezdőlapján (3. ábra).

Az Nbextensions fülre kattintva megkapjuk az elérhető widgetek listáját. Esetemben úgy döntöttem, hogy engedélyezem a 4. ábrán láthatóakat.

Néhány kedvenc kiterjesztésem:

  1. Tartalomjegyzék

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.