Найти тему
Nuances of programming

Прокачка Jupyter Notebooks

Оглавление

Источник: Nuances of Programming

Я открыл для себя Jupyter Notebooks несколько месяцев назад, когда всерьёз занялся машинным обучением. То, как всё работает в браузере, сначала откровенно восхитило, но розовые очки быстро спали: стало понятно, что в интерфейсе не хватает базовых полезных функций. Тогда я и решил освоить фишки работы с Jupyter Notebooks.

Если вы будете следовать инструкции, приведённой ниже, в вашем Jupyter Notebook появятся следующие функции (к слову, это не предел):

  • Возможность налету переключаться между несколькими окружениями Conda без перезапуска Jupyter Notebook.
  • Создание Table of Contents (содержания) в один клик (вы это оцените!).
  • Невероятно полезный всплывающий Scratch Pad (блокнот, моё любимое!), где вы сможете протестировать код и поэкспериментировать, не меняя ничего в основном теле кода.
  • Code Folding (Сворачивание блоков кода). Не понимаю, почему эта функция не была введена раньше.
  • Code Cell hiding (Скрыть код), важная функция, если вы представляете историю данных через визуализацию.. людям куда интереснее графики и диаграммы, а не сам код!
  • Очень крутой Variable Inspector (Инспектор переменных).
  • Spellchecker (Проверка орфографии) для маркдаун-ячеек.
  • Zen Mode, которыйпрячет все лишние отвлекающие опции.
  • Меню Code Snippets (Фрагменты кода), позволяющее налету добавлять Python-конструкции, например, List comprehensions (Генератор списков).
  • И, наконец, лучшая из фич —  спокойная красивая полуночная тема для ваших глаз!

Пора прокачаться!

Для начала давайте займёмся настройкой расслабляющей тёмной темы. От долгой работы в программе со светлым фоном глаза сильно устают. Как бы там ни было, перейдя на тёмную сторону, вы уже не сможете вернуться.

Чтобы установить тёмную тему, следуйте следующей инструкции:

# Выключите сервер Jupyter Notebooks и выйдите из него
# Убедитесь, что вы находитесь в базовой среде conda
conda activate base
# установите jupyterthemes
pip install jupyterthemes
# обновите до последней версии
pip install --upgrade jupyterthemes

Когда пакет установлен и обновлён, пропишите следующую команду и смело переключайтесь со светлой темы на тёмно-синюю полуночную. Ваши глаза это оценят.

# Включите Dark Mode
jt -t onedork -fs 95 -altp -tfs 11 -nfs 115 -cellw 88% -T

Теперь давайте посмотрим, сможем ли мы добавить созданные в Anaconda кастомные окружения в качестве ядер в Jupyter Notebooks. Это обеспечит быстрое переключение через меню Kernel без перезапуска среды.

Предположим, вы создали два кастомных окружения в Anaconda: my_NLP и gym. Чтобы добавить их в Jupyter Notebooks, нужно:

# Остановите сервер Jupyter Notebooks и выйдите из него
# Активируйте окружение через терминал
conda activate my_NLP
# Установите IPython Kernel
pip install ipykernel
# Привяжите кастомное окружение к Jupyter
python -m ipykernel install --user --name=my_NLP
# Повторите шаги выше для второго окружения
conda activate gym
pip install ipykernel
python -m ipykernel install --user --name=gym

Теперь откройте Jupyter Notebooks, перейдите в меню Change Kernel и… Бум! Перед вами список ядер, между которыми можно переключаться в один клик.

Вот где появляются новые добавленные ядра. Обратите внимание на приятную темно-синюю тему.
Вот где появляются новые добавленные ядра. Обратите внимание на приятную темно-синюю тему.

Для настройки остальных фич, нужно будет установить nbextensions для Jupyter Notebooks. Для установки следуйте инструкции:

# Остановите сервер Jupyter Notebooks и выйдите из него
# Убедитесь, что вы находитесь в базовой среде
conda activate base
# Установите nbextensions
pip install jupyter_contrib_nbextensions
# Установите необходимые JS и CSS файлы
jupyter contrib nbextension install --system

Запустите сервер Jupyter Notebooks. Четвертая слева вкладка — Nbextensions. Кликните по ней и увидите полный список функций, которые можно подключить.

Nbextensions
Nbextensions

Как вы видите, список обширный, и с первого взгляда в нём не просто разобраться. Кроме того, не все функции одинаково полезны. Вот те, которыми пользуюсь я:

  • Table of Contents — создает содержание для всего блокнота в один клик, сразу с гиперссылками на разные секции кода.
  • Scratchpad — мне кажется, это лучшее расширение. Выделяет пространство для экспериментов с частью кода, позволяя абстрагироваться от остального и оставить код в основном блокноте неизменным.
  • Codefolding — позволяет сворачивать блоки кода.
  • Hide Input All — прячет весь массив кода, оставляя на виду выходные данные и метки. Полезно, если вы пытаетесь объяснить принцип работы программы человеку, который не разбирается в технических деталях.
  • Variable Inspector — сократит время отладки, функция похожа на инспектор переменных в Spyder IDE.
  • Spellchecker — проверка орфографии в маркдаун-ячейках.
  • Zen Mode.
  • Snippets Menu — крутые коллекции часто используемых фрагментов кода от list comprehensions до pandas, включая всё, что между ними. Что может быть лучше? Вы можете добавлять и собственные фрагменты.

Выше приведен список функций, которыми пользуюсь я, но не отказывайте себе в том, чтобы опробовать остальные. Из интересных функций, которые я не упомянул: ScrollDown, table_beautifier и Hinterland.

Расширения Snippets и Table of Contents в действии
Расширения Snippets и Table of Contents в действии
Scratchpad
Scratchpad

Примечания:

  • Если у вас не установлен Anaconda, попросту игнорируйте команды, включающие в себя «conda». Вы можете пропустить пункты, касающиеся добавления окружений Anaconda в Jupyter Notebooks.
  • Чтобы установить расширения вам потребуются права администратора.
  • Если вам не понравилось работать с тёмной темой, введите в терминале команду jt –r , чтобы вернуть обратно светлую тему. Если ничего не изменилось, перезапустите программу и почистите кэш браузера.

Читайте также:

Читайте нас в телеграмме и vk

Перевод статьи Pranjal Chaubey: Supercharging Jupyter Notebooks