Я открыл для себя 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. Кликните по ней и увидите полный список функций, которые можно подключить.
Как вы видите, список обширный, и с первого взгляда в нём не просто разобраться. Кроме того, не все функции одинаково полезны. Вот те, которыми пользуюсь я:
- Table of Contents — создает содержание для всего блокнота в один клик, сразу с гиперссылками на разные секции кода.
- Scratchpad — мне кажется, это лучшее расширение. Выделяет пространство для экспериментов с частью кода, позволяя абстрагироваться от остального и оставить код в основном блокноте неизменным.
- Codefolding — позволяет сворачивать блоки кода.
- Hide Input All — прячет весь массив кода, оставляя на виду выходные данные и метки. Полезно, если вы пытаетесь объяснить принцип работы программы человеку, который не разбирается в технических деталях.
- Variable Inspector — сократит время отладки, функция похожа на инспектор переменных в Spyder IDE.
- Spellchecker — проверка орфографии в маркдаун-ячейках.
- Zen Mode.
- Snippets Menu — крутые коллекции часто используемых фрагментов кода от list comprehensions до pandas, включая всё, что между ними. Что может быть лучше? Вы можете добавлять и собственные фрагменты.
Выше приведен список функций, которыми пользуюсь я, но не отказывайте себе в том, чтобы опробовать остальные. Из интересных функций, которые я не упомянул: ScrollDown, table_beautifier и Hinterland.
Примечания:
- Если у вас не установлен Anaconda, попросту игнорируйте команды, включающие в себя «conda». Вы можете пропустить пункты, касающиеся добавления окружений Anaconda в Jupyter Notebooks.
- Чтобы установить расширения вам потребуются права администратора.
- Если вам не понравилось работать с тёмной темой, введите в терминале команду jt –r , чтобы вернуть обратно светлую тему. Если ничего не изменилось, перезапустите программу и почистите кэш браузера.
Читайте также:
- Интерактивное управление в Jupyter Notebooks
- Как легко оптимизировать Jupyter Notebook. Часть 1
- Автоматический импорт библиотек в IPython или Jupyter Notebook
Перевод статьи Pranjal Chaubey: Supercharging Jupyter Notebooks