Jupyter Notebooks — отличный инструмент для всех разработчиков, желающих поделиться своей работой. Он предоставляет простой способ обмена проектами и широко используется в таких областях, как анализ данных и наука о данных.
Однако многие не знакомы со всеми возможностями Jupyter Notebooks и используют лишь основные функции написания кода Python и отображения графиков.
Рассмотрим 4 полезных совета, которые помогут улучшить функциональность Jupyter Notebooks!
(1) Выполнение команд оболочки
Оболочка в техническом/программном контексте — это способ взаимодействия с компьютером через текстовые команды. Самая популярная оболочка Unix — это Bash (Bourne Again SHell). Она является оболочкой по умолчанию, а найти ее можно через терминал на любом компьютере с Linux.
Довольно часто при работе с Python нужно переключаться между написанием кода Python и использованием оболочки. Например, чтобы прочитать определенный файл с диска с помощью Python, для начала необходимо проверить его имя. Обычно вы просто заходите в терминал и набираете команду ls, чтобы получить список всех файлов и папок в текущей директории. Эти скачки туда-сюда довольно утомительны и неэффективны.
Одной из интересных особенностей Jupyter является возможность выполнения команд оболочки без необходимости покидать браузер. Нужно лишь поставить дополнительный восклицательный знак !
перед командой оболочки, и Jupyter переведет его в Bash. Любую команду, работающую в командной строке, можно использовать в Python Jupyter Notebook с префиксом !
.
# Список содержимого папки
>>> !ls
mynotebook.ipynb stuff.txt
# Получение текущей директории
>>> !pwd
/home/george/github/project_1
# Печать из Bash
>>> !echo "Pizza is delicious!"
Pizza is delicious!
Также можно присваивать выходные данные команд оболочки переменным Python, как показано ниже:
# Получение текущей директории.
# Переменная "X" теперь содержит ["/home/george/github/project_1"]
X = !pwd
(2) Изменение тем

Во многих текстовых редакторах и программных IDE есть настраиваемые темы. Большинство разработчиков предпочитают темные режимы, такие как monaki, поскольку они более комфортны для глаз при длительном нахождении перед экраном, и в Jupyter тоже есть плагин для выбора тем.
Чтобы установить его, просто запустите команду pip в терминале:
pip install jupyterthemes
Получить список доступных тем можно следующим образом:
jt -l
На момент написания этой статьи были доступны следующие темы:
chesterish
grade3
gruvboxd
gruvboxl
monokai
oceans16
onedork
solarizedd
solarizedl
Некоторые из них представлены ниже:



(3) Расширения для ноутбуков
Расширения Jupyter Notebook — nbextensions — это модули JavaScript для улучшения функций ноутбука. Они существенно модифицируют пользовательский интерфейс Jupyter, расширяя функциональность.
Начнем с установки nbextensions через pip:
pip install jupyter_contrib_nbextensions
jupyter contrib nbextension install
После завершения установки запустите Jupyter. Появится новая вкладка под названием NBextensions, в которой находится множество опций расширения Jupyter Notebooks!

Узнать, какие функции предоставляют эти расширения, можно с помощью быстрого поиска Google. Рассмотрим некоторые из наиболее полезных вариантов ниже:
(1) Генерация оглавления
Эта функция автоматически генерирует оглавление для ноутбука на основе заголовков, созданных с помощью хэштегов #
. Например:
# Самый большой заголовок
## Большой заголовок
### Средний заголовок
#### Маленький заголовок
У каждого заголовка в таблице есть ссылка на соответствующий раздел. Это очень удобная для использования функция при росте ноутбука и множестве разделов!

(2) Автодополнение
Автодополнение — очень распространенная функция в большинстве IDE, особенно PyCharm для Python. Она значительно упрощает работу разработчиков, избавляя их от необходимости запоминать каждую команду, поскольку IDE разберется с этим самостоятельно.
Hinterland активирует автодополнение кода в Jupyter Notebooks. По мере ввода будут появляться предложения. Например, при поиске команды из внешней библиотеки, как показано в примере ниже. Очень удобно!

(3) Разделение ячеек
Разделение ячеек позволяет просматривать 2 ячейки рядом друг с другом. Это очень удобно при наличии двух связанных ячеек, таких как описание и визуализация.

(4) Исследование Dataframes с Qgrid
И, наконец, мы переходим к Qgrid — инструменту для исследования и редактирования фреймов данных без дополнительного кода Pandas.
Qgrid визуализирует фреймы данных Pandas в ноутбуках Jupyter в интерактивном режиме. Эта визуализация предоставляет такие элементы управления, как прокрутка, сортировка и фильтрация, а также возможность редактирования фрейма данных двойным щелчком на нужную ячейку.
Начнем с установки Qgrid:
pip install qgrid
jupyter nbextension enable --py --sys-prefix widgetsnbextension
Чтобы визуализировать фрейм данных с помощью Qgrid, просто импортируйте его, а затем передайте в функцию show_grid
следующим образом:
import qgrid
qgrid_widget = qgrid.show_grid(df, show_toolbar=True)
qgrid_widget
Вы получите фрейм данных с несколькими интерактивными опциями:
- Добавление и удаление строк
- Фильтрация строк
- Редактирование ячеек
Помимо этого, есть несколько интерактивных опций, которые можно активировать, передав больше аргументов функции show_grid
. Узнать более подробную информацию о функциональности Qgrid можно на официальной странице в GitHub.

Заключение
Вот и все! Мы рассмотрели 4 полезных совета по улучшению Jupyter Notebooks. Если вы хотите ознакомиться и с другими возможностями, то загляните в официальную документацию.
Читайте также:
- Прокачка Jupyter Notebooks
- Как легко оптимизировать Jupyter Notebook. Часть 1
- Настройте свой Jupyter Notebook правильно
Перевод статьи George Seif: 4 Awesome Tips for Enhancing Jupyter Notebooks