Руководство для начинающих о том, как сделать Jupyter Notebook быстрее, мощнее и круче
Самое классное в технологиях— это множество людей, которые усердно трудятся для улучшения нашей жизни. Каждый день они кровью и потом создают инструменты, упрощающие нашу работу.
Вам, к примеру, может казаться, что одной установки и запуска Jupyter Notebook вполне достаточно. Если все заработало, то и отлично! Но вы вряд ли знаете, что существует множество способов по настройке этой оболочки. А установка программы или пакета — это всего лишь начало!
Почему бы не потратить пару минут на то, чтобы сделать свой Jupyter Notebook удобнее для работы: быстрее, круче, мощнее и даже интереснее?
Сначала — о главном
После установки запустить Jupyter Notebook можно из терминала по команде:
jupyter notebook
теперь все готово для работы!
Изменение темы блокнота
Обычно первое, что люди хотят изменить в блокнотах Jupyter Notebook, — это тема оформления. Люди сходят с ума по темной теме! Изменить тему можно в любое время, и делается это довольно просто.
Для начала перейдите в терминал и установите jupyterthemes:
pip install jupyterthemes
Теперь можно установить мега-популярную темную тему:
jt -t chesterish
Восстановить основную тему можно через
jt -r
Вот здесь можно найти GitHub-репозиторий jupyterthemes.
Основные команды
- Список горячих клавиш доступен из палитры команд, которая открывается по нажатию
Ctrl + Shift + P
илиCmd + Shift + P
. Появившееся диалоговое окно очень похоже на Spotlight Search в Mac и позволяет выполнять команды по названию. Это очень удобно, если вы не знаете нужного сочетания клавиш.
Shift + Enter
запускает текущую ячейку;Esc
открывает командный режим. Переходить по блокноту можно с помощью клавиш со стрелками.
В командном режиме можно пользоваться следующими клавишами:
A
— добавляет новую ячейку над текущей;B
— добавляет новую ячейку под текущей;M
— изменяет текущую ячейку на Markdown;Y
— возвращает к ячейке с кодом;D + D
— удаляет текущую ячейку (двойное нажатие клавиши);Enter
— переход из командного режима в режим редактирования.
Дополнительно:
Shift + Tab
— показывает документацию для объекта, который вы только что добавили в ячейку кода (продолжайте нажимать эти клавиши для переключения между режимами);Esc + F
— помогает найти и заменить информацию в коде (кроме выходных значений);Esc + 0
— переключает вывод ячеек;Shift + J
илиShift + Down
— выделяет ячейку ниже текущей.Shift + K
илиShift + Up
выделяет ячейку выше текущей. После выделения (выбора) ячеек можно выполнять пакетное удаление/копирование/вырезание/вставку/запуск. Это очень удобно, если нужно перенести часть документа.Shift + M
— объединяет несколько ячеек (простой клик по нужным ячейкам ничего вам не даст. Для объединения ячеек их следует выделять с зажатымShift
, а затем, не отпускаяShift
, нажатьM
).
- В Jupiter Notebook можно запускать bash-команды. Для этого добавьте в начало строки восклицательный знак. Например:
!pip install numpy
- Вы можете подавить вывод функции в последней строке кода, добавив в конце этой строки точку с запятой.
Комментирование/ удаление комментариев в блоках кода
Возможно, в процессе работы вам захочется добавить новые строки кода или закомментировать старые. Это весьма полезно при отладке и улучшении производительности кода.
Для добавления комментариев в код выделите нужные строки и нажмите cmd + /
.
LaTex
Если напечатать LaTex
в Markdown-ячейке, то она отобразится в виде формулы.
LaTex заменяет это:
$P(A \mid B) = \frac{P(B \mid A)P(A)}{P(B)}$
на это:
Вывод всех значений ячейки
Как правило, в ячейке отображается только последний вывод. Для всего остального нужно прописывать print()
. В принципе, ничего сложного, но это не всегда удобно. Изменить ситуацию можно, добавив вверху блокнота следующее:
from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity = “all”
Несмотря на то, что по умолчанию выводится только последний результат:
… вы увидите их все!
Если захотите вернуться к обычному представлению, то выполните следующее:
from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity = “last_expr”
Обратите внимание, что запускать команду для изменения настроек необходимо в отдельной ячейке. Тогда изменения вступят в силу при следующем выполнении ячейки.
Расширения
Jupyter Notebook — это веб-приложение с открытым кодом, поэтому для него написано множество расширений. Все поддерживаемые расширения можно найти в официальном списке iPython-расширений или популярной подборке расширений.
Установить Nbextensions из командной строки довольно просто.
С помощью pip:
pip install jupyter_contrib_nbextensions
jupyter contrib nbextension install — user
или Anaconda:
conda install -c conda-forge jupyter_contrib_nbextensions
conda install -c conda-forge jupyter_nbextensions_configurator
jupyter contrib nbextension install — user
Сразу после их установки вы увидите вкладку Nbextensions. Пользуйтесь на здоровье!
Здесь подробно написано про расширения: как подключить, отключить и т.д.
В самом Jupyter Notebook детально описано, как добавлять, включать и работать с расширениями. Кликните по Nbextensions вверху экрана, нажмите на нужное расширение, пролистайте информацию о нем и посмотрите GIF-файл с его возможностями.
Популярные расширения
- Scratchpad — очень классное расширение. Генерирует временные ячейки для выполнения быстрых вычислений без создания новой ячейки в рабочей книге. Отлично экономит время!
- Hinterland — добавляет меню автозаполнения кода в ячейке для каждого нажатия клавиши, а не только для клавиши Tab.
- Snippets — добавляет выпадающее меню для включения ячеек с фрагментами кода (сниппетами) в текущий блокнот.
- Autopep8 — автоматически форматирует Python-код в соответствии с руководством по оформлению кода PEP 8. Это очень удобно! Проследите, чтобы на локальной машине была выполнена команда
pip install autopep8 — user
. Так вы точно будете следовать правильным соглашениям по написанию кода на Python. - Split Cells Notebook — позволяет разделять ячейки в Jupyter Notebook. Перейдите в командный режим, а затем с помощью
Shift + S
переключайтесь между полноразмерной или разделенной ячейкой. - Table of Contents — собирает все выполняемые заголовки и отображает их в плавающем окне, в формате боковой панели или в меню навигации.
- A Code Prettifier — подчищает, форматирует и проставляет отступы за вас.
- Notify — отображает уведомления на рабочем столе при простое ядра. Особенно удобно, если выполняется код, на завершение которого уходит более пары секунд.
- Code Folding — в режиме редактирования добавляет иконку-треугольник для скрытия кода. Удобно при длинных функциях, которые лучше скрыть для читабельности.
- Zen mode — убирает все лишнее. Проверьте, что отключили фоны в настройках.
Читайте также:
- Поиск и устранение утечек памяти в Python
- Code Review - Полное руководство
- Руководство по написанию чистого и читабельного кода для начинающих разработчиков. Часть 1
Перевод статьи Anne Bonner: Tips, Tricks, Hacks, and Magic: How to Effortlessly Optimize Your Jupyter Notebook