Як оптимізувати ноутбук Jupyter

Вступ

На сьогоднішній день Jupyter Notebook є, мабуть, найбільш часто використовуваним середовищем для вирішення завдань машинного навчання / науки про дані в Python.

Jupyter Notebook - це програма клієнт-сервер, яка використовується для запуску документів ноутбуків у браузері. Документи для зошитів - це документи, які можуть містити як код, так і елементи багатого тексту, такі як абзаци, рівняння тощо.

У цій статті я розповім вам про декілька простих прийомів, як покращити ваш досвід роботи з Блокнотом Юпітер. Ми почнемо з корисних ярликів, а в кінцевому підсумку додамо теми, автоматично генеруємо зміст тощо.

Ярлики

Ярлики можуть бути дуже корисними для прискорення написання коду. Зараз я ознайомлю вас із деякими комбінаціями клавіш, які мені здалися найбільш корисними для використання в Юпітері.

Є два можливі способи взаємодії з Блокнотом Jupyter: командний режим і режим редагування. Деякі ярлики працюють лише в тому чи іншому режимі, тоді як інші є загальними для обох режимів.

Деякі ярлики, які є загальними в обох режимах:

  • Ctrl + Enter : для запуску всіх вибраних комірок
  • Shift + Enter : запустіть поточну комірку та перемістіть наступну
  • Ctrl + s : зберегти блокнот

Для того, щоб увійти в командний режим Jupyter, нам потрібно натиснути Esc, а потім будь-яку з наступних команд:

  • H : показати всі ярлики, доступні в блокноті Jupyter
  • Shift + стрілка вгору / вниз : для вибору кількох комірок ноутбука одночасно (натискання клавіші Enter після вибору кількох комірок змусить усі їх працювати!)
  • В : вставте нову клітинку вгорі
  • B : вставте нову комірку внизу
  • X : вирізати виділені клітинки
  • Z : скасувати видалення комірки
  • Y : змініть тип комірки на Code
  • M : змініть тип комірки на Markdown
  • Пробіл : прокрутіть блокнот вниз
  • Shift + пробіл : прокрутіть блокнот вгору

Для того, щоб замість цього перейти в режим редагування Jupyter, нам потрібно натиснути Enter і послідовно будь-яку з наступних команд:

  • Вкладка : пропозиції щодо конкурсу коду
  • Ctrl +] : код відступу
  • Ctrl + [ : виділений код
  • Ctrl + z : скасувати
  • Ctrl + y : повторити
  • Ctrl + a : виділити все
  • Ctrl + Home : перемістіть курсор до початку комірки
  • Ctrl + End : переміщення курсору до кінця комірки
  • Ctrl + Вліво : перемістити курсор на одне слово вліво
  • Ctrl + Вправо : перемістити курсор на одне слово вправо

Команди оболонки та встановлення пакетів

Не багато користувачів знають про це, але можна виконувати команди оболонки в комірці блокнота Jupyter, додаючи знак оклику на початку комірки. Наприклад, запуск комірки з ! Ls поверне всі елементи поточного робочого каталогу. Запуск комірки з ! Pwd замість цього роздрукує поточний шлях до файлу каталогу.

Цей самий трюк також можна застосувати для встановлення пакетів Python у блокноті Jupyter.

!pip install numpy

Теми Юпітера

Якщо вам цікаво змінити вигляд вашого ноутбука Jupyter, можна встановити пакет із набором різних тем. Тема Юпітера за замовчуванням виглядає як на малюнку 1. На малюнку 2 ви побачите, як ми зможемо персоналізувати її аспект.

Ми можемо встановити наш пакет безпосередньо в блокнот, використовуючи трюк, який я показав вам у попередньому розділі:

!pip install jupyterthemes

Ми можемо виконати таку команду, щоб перерахувати імена всіх доступних тем:

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

Нарешті, ми можемо вибрати тему, використовуючи таку команду (у цьому прикладі я вирішив використовувати тему solarized1):

!jt -t solarizedl

Після того, як ми виконаємо цю команду та оновимо сторінку, наш блокнот повинен виглядати як на малюнку 2.

Якщо ви хочете будь-коли повернутися до оригінальної теми блокнота Jupyter, ви можете просто запустити таку команду та оновити сторінку.

!jt -r

Розширення для ноутбуків Jupyter

Розширення для ноутбуків можна використовувати для покращення взаємодії з користувачем та пропонування широкого спектру методів персоналізації.

У цьому прикладі я буду використовувати бібліотеку nbextensions , щоб встановити всі необхідні віджети (цього разу я пропоную вам спочатку встановити пакети через термінал, а потім відкрити блокнот Jupyter). Ця бібліотека використовує різні моделі Javascript, щоб збагатити інтерфейс ноутбука.

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

Після встановлення nbextensions ви помітите, що на домашній сторінці вашого ноутбука Jupyter є додаткова вкладка (Рисунок 3).

Натиснувши вкладку Nbextensions, ми отримаємо список доступних віджетів. У моєму випадку я вирішив увімкнути ті, що показані на малюнку 4.

Деякі з моїх улюблених розширень:

  1. Зміст

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.