Запуск записных книжек Jupyter Notebook в рабочей области
В этой статье показано, как запускать записные книжки Jupyter в рабочей области Студия машинного обучения Azure. Существуют и другие способы запуска записной книжки: Jupyter, JupyterLab и Visual Studio Code. Vs Code Desktop можно настроить для доступа к вычислительному экземпляру. Или используйте VS Code для Интернета непосредственно из браузера и без каких-либо необходимых установок или зависимостей.
Мы рекомендуем попробовать VS Code для Интернета, чтобы воспользоваться преимуществами простой интеграции и расширенной среды разработки, которая предоставляется. VS Code для Интернета предоставляет множество функций VS Code Desktop, включая поиск и синтаксис при просмотре и редактировании. Дополнительные сведения об использовании VS Code Desktop и VS Code для Интернета см. в статье «Запуск Visual Studio Code» с Машинное обучение Azure (предварительная версия) и удаленное подключение к вычислительному экземпляру (предварительная версия) в VS Code.
Независимо от того, какое решение вы используете для запуска записной книжки, у вас будет доступ ко всем файлам из рабочей области. Сведения о создании файлов и управлении ими, включая записные книжки, см. в разделе Создание файлов и управление ими в рабочей области.
В этой статье показано, как запустить записную книжку непосредственно в студии.
Компоненты, которые помечены как «предварительная версия», предоставляются без соглашения об уровне обслуживания и не рекомендуются для использования в рабочей среде. Некоторые функции могут не поддерживаться или их возможности могут быть ограничены. Дополнительные сведения см. в статье Дополнительные условия использования Предварительных версий Microsoft Azure.
Необходимые компоненты
- Подписка Azure. Если у вас еще нет подписки Azure, создайте бесплатную учетную запись, прежде чем начинать работу.
- Рабочая область машинного обучения. См.раздел Создание ресурсов рабочей области.
- Удостоверение пользователя должно иметь доступ к учетной записи хранения по умолчанию вашей рабочей области. Возможность чтения, изменения и создания записных книжек зависит от уровня доступа к рабочей области. Например, участник может редактировать записную книжку, в то время как читатель может только просматривать ее.
Доступ к записным книжкам из рабочей области
Используйте раздел Записные книжки рабочей области для редактирования и запуска записных книжек Jupyter.
- Войдите в Студию машинного обучения Azure.
- Выберите рабочую область, если она еще не открыта
- Выберите Записные книжки слева.
Изменение записной книжки
Чтобы изменить записную книжку, откройте любую записную книжку, расположенную в разделе User Files (Файлы пользователя) рабочей области. Выберите ячейку, которую вы хотите изменить. Если у вас нет записных книжек в этом разделе, см. статью Создание файлов и управление ими в рабочей области.
Вы можете изменить записную книжку без подключения к вычислительному экземпляру. Если нужно выполнить ячейки в записной книжке, выберите или создайте вычислительный экземпляр. Если выбрать остановленный вычислительный экземпляр, он автоматически запустится при запуске первой ячейки.
Если выполняется вычислительная операция, можно также использовать функцию завершения кода на платформе IntelliSense в любой записной книжке Python.
Вы также можете запустить Jupyter или JupyterLab на панели инструментов записной книжки. Машинное обучение Azure не предоставляет обновления и не исправляет ошибки из Jupyter или JupyterLab, так как они находятся вне границы служба поддержки Майкрософт.
Режим фокусировки
Используйте режим фокусировки, чтобы развернуть текущее представление и сосредоточиться на активных вкладках. Режим фокусировки скрывает обозреватель файлов записных книжек.
- На панели инструментов окна терминала выберите режим фокусировки, чтобы включить режим фокусировки. В зависимости от ширины окна средство может находиться в меню . на панели инструментов.
- В режиме фокусировки вернитесь к стандартному представлению, выбрав Стандартное представление.
Завершение кода (IntelliSense)
IntelliSense — это вспомогательное средство для написания кода, включающее множество возможностей: «Список членов», «Сведения о параметрах», «Краткие сведения» и «Завершить слово». За несколько нажатий клавиш вы можете:
- узнать больше о коде, который вы используете;
- следить за параметрами, которые вы вводите;
- добавлять вызовы в свойства и методы.
Совместное использование записной книжки
Ваши записные книжки хранятся в учетной записи хранения рабочей области и могут использоваться совместно с другими пользователями в зависимости от уровня доступа к рабочей области. Они могут открывать и редактировать записную книжку, если у них есть соответствующий доступ. Например, участник может редактировать записную книжку, в то время как читатель может только просматривать ее.
Другие пользователи рабочей области могут найти записную книжку в разделе «Записные книжки«, «Файлы пользователей» Студия машинного обучения Azure. По умолчанию записные книжки находятся в папке с вашим именем пользователя, и другие пользователи могут получить к ним доступ.
Вы также можете скопировать URL-адрес из браузера при открытии записной книжки, а затем отправить его другим пользователям. Если у них есть соответствующий доступ к рабочей области, они могут открыть записную книжку.
Так как вы не делитесь вычислительными экземплярами, другие пользователи, запускающие записную книжку, будут использовать собственный вычислительный экземпляр.
Совместная работа с комментариями записной книжки (предварительная версия)
Используйте комментарий записной книжки для совместной работы с другими пользователями, имеющими доступ к этой записной книжке.
Переключить отображение области комментариев можно с помощью инструмента Notebook comments (Комментарии записной книжки) в верхней части записной книжки. Если экран недостаточно слишком широкий, откройте этот инструмент, выбрав … в конце набора инструментов.

Вне зависимости от того, отображается ли область комментариев, можно добавить комментарий в любую ячейку кода.

- Выделите фрагмент текста в ячейке кода. В ячейке кода можно комментировать только текст.
- Чтобы создать комментарий, используйте инструмент New comment thread (Создать цепочку комментариев).
- Если область комментариев была ранее скрыта, она откроется.
- Введите комментарий и опубликуйте его с помощью инструмента или нажав клавиши CTRL+ВВОД.
- После публикации комментария выберите . в правом верхнем углу:
- изменить комментарий;
- разрешить цепочку;
- удалить цепочку.
Текст, для которого был добавлен комментарий, будет отображаться в коде фиолетовым цветом. При выборе комментария в области комментариев записная книжка прокрутится до ячейки, содержащей выделенный текст.
Комментарии сохраняются в метаданных ячейки кода.
Очистка записной книжки (предварительная версия)
В ходе создания записной книжки обычно образуются ячейки, используемые для просмотра или отладки данных. Функция сбора поможет вам создать чистую записную книжку без этих лишних ячеек.

- Выполните все ячейки записной книжки.
- Выберите ячейку, содержащую код, который должна запускать новая записная книжка. Например, код, который отправляет эксперимент, или код, регистрирующий модель.
- Нажмите значок Сбор, отображаемый на панели инструментов ячейки.
- Введите имя новой, «собранной» записной книжки.
Новая записная книжка содержит только ячейки кода, при этом все ячейки должны получать те же результаты, что и выбранная ячейка для сбора.
Сохранение записной книжки и создание контрольных точек
Машинное обучение Azure создает файл контрольных точек при создании IPYNB-файла.
На панели инструментов записной книжки выберите меню, а затем Файл>Сохранить и создать контрольные точки, чтобы вручную сохранить записную книжку и добавить файл контрольных точек, связанный с записной книжкой.

Записные книжки автоматически сохраняются каждые 30 секунд. Функция автосохранения обновляет только исходный IPYNB-файл, а не файл проверки.
Выберите Контрольные точки в меню записной книжки, чтобы создать именованную контрольную точку и вернуть записную книжку к сохраненной контрольной точке.
Экспорт записной книжки
На панели инструментов записной книжки выберите меню и нажмите Экспортировать как, чтобы экспортировать записную книжку как любой из поддерживаемых типов:

Экспортированный файл сохраняется на компьютере.
Запуск записной книжки или скрипта Python
Чтобы запустить записную книжку или скрипт Python, сначала подключитесь к выполняющемуся вычислительному экземпляру.
- Если у вас нет вычислительной операции, выполните следующие действия, чтобы создать ее:
- На панели инструментов записной книжки или скрипта справа от раскрывающегося списка «Вычислительная среда» нажмите + Создать вычислительную среду. В зависимости от размера экрана этот параметр может находиться в меню . .

- Присвойте имя вычислительной операции и выберите значение Virtual Machine Size (Размер виртуальной машины).
- Выберите Создать.
- Вычислительный экземпляр подключается к файлу автоматически. Теперь можно запускать ячейки записной книжки или скрипт Python, используя инструмент слева от вычислительного экземпляра.
- На панели инструментов записной книжки или скрипта справа от раскрывающегося списка «Вычислительная среда» нажмите + Создать вычислительную среду. В зависимости от размера экрана этот параметр может находиться в меню . .
- Если ваш вычислительный экземпляр остановлен, выберите Запустить вычислительную среду справа от раскрывающегося списка «Вычислительная среда». В зависимости от размера экрана этот параметр может находиться в меню . .

После подключения к вычислительному экземпляру используйте панель инструментов для запуска всех ячеек в записной книжке или control + ВВОД, чтобы запустить одну выбранную ячейку.
Только вы можете просматривать и использовать созданные вами вычислительные операции. Ваша папка User files (Файлы пользователя) хранится отдельно от виртуальной машины и является общей для всех вычислительных операций в рабочей области.
Изучение переменных в записной книжке
На панели инструментов записной книжки используйте Обозреватель переменных, чтобы отобразить имя, тип, длину и примеры значений для всех переменных, созданных в записной книжке.

Выберите инструмент, чтобы открыть окно обозревателя переменных.

Навигация с помощью оглавления
На панели инструментов записной книжки используйте инструмент Оглавление, чтобы отобразить или скрыть оглавление. Запустите ячейку Markdown с заголовком, чтобы добавить ее в оглавление. Выберите запись в таблице, чтобы прокрутить эту ячейку в записной книжке.

Изменение среды записной книжки
С помощью панели инструментов записной книжки можно изменить среду, в которой выполняется записная книжка.
Эти действия не изменят состояние записной книжки или значения каких-либо переменных в записной книжке:
| Действие | Результат |
|---|---|
| Остановка ядра | Все выполняемые ячейки останавливаются. При выполнении ячейки ядро автоматически перезапускается. |
| Переход в другой раздел рабочей области | Выполняемые ячейки останавливаются. |
Эти действия сбрасывают состояние записной книжки и все переменные в записной книжке.
| Действие | Результат |
|---|---|
| Изменение ядра | Записная книжка использует новое ядро. |
| Переключение вычисления | Записная книжка автоматически использует новое вычисление. |
| Сброс вычисления | Повторный запуск при попытке выполнить ячейку. |
| Остановка вычисления | Ячейки не выполняются. |
| Открытие записной книжки в Jupyter или JupyterLab | Записная книжка открывается на новой вкладке. |
Добавление новых ядер
Используйте терминал для создания и добавления новых ядер в вычислительный экземпляр. Записная книжка автоматически находит все ядра Jupyter, установленные на подключенном вычислительном экземпляре.
Используйте раскрывающееся меню ядра справа, чтобы перейти на любое из установленных ядер.
Управление пакетами
Так как вычислительный экземпляр имеет несколько ядер, убедитесь, что используются %pip или %conda волшебные функции, которые устанавливают пакеты в текущее работающее ядро. Не используйте !pip или !conda не относится ко всем пакетам (включая пакеты за пределами запущенного ядра).
Индикаторы состояния
Индикатор рядом с раскрывающимся списком Compute (Вычисление) отображает его состояние. Состояние также отображается в самом раскрывающемся списке.
| Color | Состояние вычисления |
|---|---|
| Зеленый | Вычисление выполняется |
| Красный | Сбой при вычислении |
| Черный | Вычисление остановлено |
| Голубой | Создание, запуск, перезапуск, настройка вычисления |
| Серый | Идет процесс удаления или остановки вычисления |
Индикатор рядом с раскрывающимся списком Kernel (Ядро) отображает его состояние.
| Color | Состояние ядра |
|---|---|
| Зеленый | Ядро подключено, неактивно или занято |
| Серый | Ядро не подключено |
Сведения о вычислениях
Сведения о вычислительных операциях см. на странице Compute (Вычисления) в Студии.
Полезные сочетания клавиш
Аналогично Jupyter Notebook, Студия машинного обучения Azure записные книжки имеют модальный пользовательский интерфейс. Клавиатура выполняет разные действия в зависимости от того, в каком режиме находится ячейка записной книжки. Студия машинного обучения Azure записные книжки поддерживают следующие два режима для заданной ячейки кода: режим команд и режим редактирования.
Сочетания клавиш для режима команд
Ячейка находится в командном режиме, если текстовый курсор не запрашивает ввод. Когда ячейка находится в режиме команд, вы можете редактировать записную книжку целиком, но не вводить ее в отдельные ячейки. Войдите в режим команд, нажав ESC или щелкнув за пределами области редактора ячейки с помощью мыши. Левая граница активной ячейки — синяя и сплошная, а кнопка Запуск — синяя.

| Ярлык | Description |
|---|---|
| ВВОД | Ввод режима редактирования |
| SHIFT + ВВОД | Запуск ячейки, выбор следующей |
| CTRL/CMD+ВВОД | Запустить ячейки |
| ALT + ВВОД | Запуск ячейки, вставка ячейки кода ниже |
| CTRL/CMD + ALT + ВВОД | Запуск ячейки, вставка ячейки Markdown ниже |
| ALT + R | Запустить все |
| Y | Преобразование ячейки в код |
| M | Преобразование ячейки в Markdown |
| ВВЕРХ/K | Выбор ячейки выше |
| ВНИЗ/J | Выбор ячейки ниже |
| А | Вставка ячейки кода выше |
| Б | Вставка ячейки кода ниже |
| CTRL/CMD + SHIFT + A | Вставка ячейки Markdown выше |
| CTRL/CMD + SHIFT + B | Вставка ячейки Markdown ниже |
| X | Вырезание выбранной ячейки |
| C | Копирование выбранной ячейки |
| SHIFT + V | Вставка выбранной ячейки выше |
| V | Вставка выбранной ячейки ниже |
| D D | Удаление выбранной ячейки |
| O | Переключить выходные данные |
| SHIFT + O | Переключение прокручивания выходных данных |
| I I | Прерывание ядра |
| 0 0 | Перезапуск ядра |
| SHIFT + ПРОБЕЛ | Прокрутка вверх |
| Space | Прокрутка вниз |
| TAB | Переход фокуса на следующий фокусируемый элемент (при отключенной ловушке фокуса) |
| CTRL/CMD + S | Сохранение записной книжки |
| 1 | Изменение на h1 |
| 2 | Изменение на h2 |
| 3 | Изменение на h3 |
| 4 | Изменение на h4 |
| 5 | Изменение на h5 |
| 6 | Изменение на h6 |
Сочетания клавиш режима правки
Режим правки обозначается текстовым курсором для ввода текста в области редактора. Когда ячейка находится в режиме правки, можно ввести текст в ячейку. Введите режим редактирования, нажав Enter или выберите область редактора ячейки. Левая граница активной ячейки — зеленая и пунктирная, а кнопка Запуск — зеленая. Вы также видите курсор в ячейке в режиме редактирования.

С помощью приведенных ниже сочетаний клавиш вы можете легче перемещаться и выполнять код в записных книжках Машинного обучения Azure в режиме правки.
| Ярлык | Description |
|---|---|
| ESCAPE | Вход в режим команд |
| CTRL/CMD + ПРОБЕЛ | Активация IntelliSense |
| SHIFT + ВВОД | Запуск ячейки, выбор следующей |
| CTRL/CMD+ВВОД | Запустить ячейки |
| ALT + ВВОД | Запуск ячейки, вставка ячейки кода ниже |
| CTRL/CMD + ALT + ВВОД | Запуск ячейки, вставка ячейки Markdown ниже |
| ALT + R | Выполнение всех ячеек |
| Up | Перемещение курсора вверх или в предыдущую ячейку |
| Down | Перемещение курсора вниз или в следующую ячейку |
| CTRL/CMD + S | Сохранение записной книжки |
| CTRL/CMD + стрелка вверх | Переход к началу ячейки |
| CTRL/CMD + стрелка вниз | Передох к концу ячейки |
| TAB | Завершение кода или отступ (если включена ловушка фокуса) |
| CTRL/CMD + M | Включение или отключение ловушки фокуса |
| CTRL/CMD + ] | Отступ |
| CTRL/CMD + [ | Понижение уровня |
| CTRL/CMD + A | Выделить все |
| CTRL/CMD + Z | Отмена |
| CTRL/CMD + SHIFT + Z | Вернуть |
| CTRL/CMD + Y | Вернуть |
| CTRL/CMD + HOME | Переход к началу ячейки |
| CTRL/CMD + END | Передох к концу ячейки |
| CTRL/CMD + стрелка влево | Переход на одно слово влево |
| CTRL/CMD + стрелка вправо | Переход на одно слово вправо |
| Control/Command + BACKSPACE | Удаление слова перед |
| CTRL/CMD + DELETE | Удаление слова после |
| CTRL/CMD + / | Переключение комментария в ячейке |
Устранение неполадок
- Подключение к записной книжке. Если вы не можете подключиться к записной книжке, убедитесь, что связь с веб-сокетом не отключена. Для использования функциональности Jupyter экземпляра вычислительных ресурсов необходимо включить связь через веб-сокет. Убедитесь, что сеть разрешает подключения через веб-сокеты к *.instances.azureml.net и *.instances.azureml.ms.
- Частная конечная точка. При развертывании вычислительного экземпляра в рабочей области с частной конечной точкой доступ к нему можно получить только из виртуальной сети. Если вы используете пользовательский ФАЙЛ DNS или узлов, добавьте запись для < имени >экземпляра .< регион >.instances.azureml.ms с частным IP-адресом частной конечной точки рабочей области. Дополнительные сведения см. в статье о пользовательской DNS.
- Сбой ядра: если ядро разбилось и было перезапущено, можно выполнить следующую команду, чтобы просмотреть журнал Jupyter и узнать дополнительные сведения: sudo journalctl -u jupyter Если проблемы с ядром не исчезли, рекомендуется использовать вычислительный экземпляр с большим объемом памяти.
- Ядро не найдено или Операции ядра отключены. Такая ошибка может возникнуть при использовании ядра Python 3.8 по умолчанию в вычислительном экземпляре. Для ее исправления можно использовать один из следующих методов.
- Создание нового вычислительного экземпляра. Будет использован новый образ, в котором эта проблема была устранена.
- Используйте ядро Py 3.6 в существующем вычислительном экземпляре.
- В терминале в среде py38 по умолчанию запустите pip install ipykernel==6.6.0 ИЛИ pip install ipykernel==6.0.3
Следующие шаги
- Выполнение первого эксперимента
- Резервное копирование хранилища файлов с помощью моментальных снимков
- Работа в безопасных средах
4 совета по улучшению Jupyter Notebooks
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 правильно
Как повысить продуктивность работы в Jupyter notebook с помощью Nbextensions
Jupyter notebook — удобная среда для функционального программирования. В работе часто приходится писать код, который подходит под конкретную задачу (обработка информации, парсинг сайтов, process mining и т.д). Такие задачи проще выполнять с функциональным подходом, и среда Jupyter notebook идеально подходит для этого.
Однако использование notebook’ов можно сделать ещё более удобным и продуктивным с помощью Jupyter Notebook Extensions. Это расширения для notebook, которые позволяют добавить множество «фич» для удобства работы. Сегодня я хочу поделиться собственным топом таких расширений.
Чтобы установить расширения, необходимо запустить следующие команды в promt:
pip install jupyter_contrib_nbextensions jupyter contrib nbextension install
После этого при запуске Jupyter Notebook появится новая вкладка Nbextensions.
На ней представлен список всех расширений. Для их включения необходимо нажать галочку рядом с ними. При выборе определённого расширения снизу раскрывается информация о самом расширении и дополнительные параметры.
Например, расширение ExecuteTime. Пишется короткая справка о функционале, и можно развернуть параметры и readme.md.
Сегодня хочу поделиться собственным топом расширений, которыми я пользуюсь каждый день.
Когда код пишется для разового использования, некритично не соблюдать различные стилистические правила «хорошего кодинга». Однако по опыту код просматривается и передается после его «разового» применения ещё много раз, поэтому для лучшей читаемости стоит приводить весь код в соответствие со стандартами, поэтому данный модуль крайне полезен.
Напишу простенький алгоритм, принимающий на вход 3 значения и выводящий True или False.
Специально сделала код плохо читаемым. Теперь применю новую кнопку, которая отформатирует весь код согласно стандартам pep8.
2. Table of Contents
На втором месте для меня является создание заголовков в коде для быстрого перемещения между ними. Больше всего данная функция удобна при создании учебных notebook или демонстрационных.
Например, вот оглавление из моих личных учебных notebook’ов:
Удобно, что при нажатии на интересующий заголовок тетрадь переходит к этому месту.
Создам пару заголовков в тренировочном notebook.
Для этого создаю ячейку markdown и напишу заголовок, используя «#» для обозначения уровня заголовка. Чем больше #, тем больше уровень заголовка.
# Test pep8 — это первый уровень заголовка. При нажатии на кнопку списков, слева высвечивается оглавление. Оно также автоматически нумеруется.
3. Codefolding
Внимательные читатели уже могли обратить внимание на серые стрелочки рядом с блоками кода на скриншотах выше.
При их нажатии блок скрывается/раскрывается. Например, блок if и else.
Данный функционал удобен при значительном объёме кода для лучшего понимания, также при разборе чужого кода или когда необходимо сконцентрироваться на определенной «ветке» алгоритма.
4. Execute Time
Также очень полезный инструмент, который позволяет отслеживать время выполнения ячейки без дополнительных импортов и применения функций. По умолчанию выводит данный параметр к каждой ячейке под ячейкой с кодом.
5. Table_beatifier
Инструмент для преобразования отображения таблиц. Очень удобен при работе с небольшими датасетами или отфильтрованными частями большого. На скриншотах ниже представлен обычный вариант numpy датасета (слева) и с использованием расширения table_beautifier (справа).
Главное различие – возможность фильтрации значений по столбцам.
6. Variable Inspector
Расширение для просмотра всех переменных в памяти, их типа, занимаемого места и значения. При добавлении расширения добавляется значок, как на скриншоте снизу.
В notebook при нажатии кнопки Variable Inspector появляется окно, которое можно перемещать, изменять размер и сворачивать.
В окне отображаются все переменные в памяти, их названия, типы, занимаемый размер и значение (для объектов различных модулей также поддерживается).
Таким образом, можно значительно упростить и оптимизировать процесс работы в Jupyter Notebook. Расширения будут полезны не только новичкам, но и опытным пользователям. Каждый сможет подобрать набор расширений под свои нужды.
Блокнот Jupyter: Введение
Jupyter Notebook — это веб-приложение с открытым исходным кодом, которое можно использовать для создания и обмена документами, содержащими живой код, уравнения, визуализации и текст. Jupyter Notebook поддерживается программистами из Project Jupyter.
Jupyter является преемником более раннего проекта IPython Notebook. Название Jupyter происходит от основных поддерживаемых языков программирования, которые он поддерживает: Julia, Python и R. Jupyter снабжаемые ядром IPython, которое позволяет вам писать свои программы на Python. В настоящий момент, существует более 100 других ядер, которые вы можете использовать.
Начало работы с Jupyter Notebook
Jupyter Notebook изначально не входит в состав Python, поэтому Вам потребуется установка Jupyter.Существует множество дистрибутивов языка Python, но особое внимание мы уделим только 2 основным. Самым популярным из них является CPython — это базовая версия Python, которую вы можете найти на их веб-сайте. Рекомендуем использовать Python 3.
Установка
Чтобы начать работать с Jupyter Notebook, библиотеку Jupyter необходимо установить для Python. Проще всего это сделать с помощью pip:
$ pip install jupyter
Следующим по популярности дистрибутивом Python является Anaconda . У Anaconda есть собственный установщик под названием conda, который вы можете использовать для установки стороннего пакета. Однако Anaconda установлена со многими предустановленными научными библиотеками, включая Jupyter Notebook, поэтому вам не нужно ничего делать, кроме установки самой Anaconda.
Запуск Jupyter Notebook Server
Теперь, когда у вас установлен Jupyter, давайте узнаем, как его использовать. Для начала все, что вам нужно сделать, это открыть приложение и перейти в папку по вашему выбору. Для начала, рекомендуем использовать что-то вроде папки «Documents» и создать в ней подпапку под названием « Notebooks» или что-то еще, что легко запомнить.
Затем просто перейдите в это место в своем терминале и выполните следующую команду:
$ jupyter notebook
Это запустит сервер Jupyter, а браузер откроет новую вкладку со следующим URL: http: // localhost: 8888 / tree

Теперь ваш браузер должен выглядеть примерно так:
Отлично! Обратите внимание, что прямо сейчас вы фактически не используете Notebook, а просто запускаете сервер Notebook. Теперь пришло время создать первый notebook и заполнять его кодом.Создание записной книжки
Теперь, когда вы знаете, как запустить сервер Notebook, вам, вероятно, следует научиться создавать настоящий документ Notebook.
Для создания notebook выберите «New» в верхнем меню, а потом «Python 3». Теперь страница в браузере будет выглядеть вот так:

Название вашего Notebook

Вы заметите, что вверху страницы есть слово Untitled . Это заголовок страницы и имя вашей записной книжки. Его лучше поменять на что-то более понятное. Просто наведите мышью и кликните по тексту. Теперь можно выбрать новое название:
Вывод кода
Ячейка Notebook по умолчанию использует код всякий раз, когда вы создаете его впервые, и эта ячейка использует ядро, которое вы выбрали при запуске Notebook.
Перед первой строкой написано In [] . Это ключевое слово значит, что дальше будет ввод. Попробуйте написать простое выражение вывода. Не забывайте, что нужно пользоваться синтаксисом Python 3. После этого нажмите «Run». Если вы предпочитаете использовать клавиатуру, вы можете просто нажать Shift + Enter .
Попробуем добавить в эту ячейку следующий код:
print('Hello Jupyter!')
При запуске кода, результат должен выглядеть таким образом:
Вывод должен отобразиться прямо в notebook. Это и позволяет заниматься программированием в интерактивном формате, имея возможность отслеживать вывод каждого шага. Также обратите внимание на то, что In [] изменится и вместо нее станет In [1] . Число в скобках означает порядок, в котором эта ячейка будет запущена. В первой цифра 2 , потому что она была второй запущенной ячейкой. Каждую ячейку можно запускать индивидуально и цифры в скобках будут менять соответственно. Если есть несколько ячеек, то между ними можно делиться переменными и импортами. Это позволяет проще разбивать весь код на связанные блоки, не создавая переменную каждый раз. Главное убедиться в запуске ячеек в правильном порядке, чтобы переменные не использовались до того, как были созданы.
Меню
В Jupyter Notebook есть несколько меню, которые вы можете использовать для взаимодействия с вашим Notebook.. Вот список текущих меню:
На сервере Jupyter есть несколько меню, с помощью которых от проекта можно получить максимум. С их помощью можно взаимодействовать с notebook, читать документацию популярных библиотек Python и экспортировать проект для последующей демонстрации
Первое меню — это меню «Файл». В нем вы можете создать новый блокнот или открыть уже существующий. Здесь также можно переименовать Блокнот. Думаю, самый интересный пункт меню — это опция « Сохранить и проверить» . Это позволяет вам создавать контрольные точки, к которым вы можете откатиться, если вам нужно.
Далее идет меню « Правка» . Здесь вы можете вырезать, копировать и вставлять ячейки. Это также то место, куда вы должны пойти, если хотите удалить, разделить или объединить ячейку. Вы также можете изменить порядок ячеек здесь.
Обратите внимание, что некоторые элементы в этом меню неактивны. Причина в том, что они не применяются к текущей выбранной ячейке. Например, в ячейку кода нельзя вставить изображение, а в ячейку Markdown можно. Если вы видите пункт меню серого цвета, попробуйте изменить тип ячейки и посмотрите, станет ли этот элемент доступным для использования.
Вид меню полезно для переключения видимости заголовка и панели инструментов. Вы также можете включить или выключить номера строк в ячейках. Это также то место, куда вы должны пойти, если хотите возиться с панелью инструментов ячейки.
Меню « Вставка» предназначено только для вставки ячеек выше или ниже текущей выбранной ячейки.
Меню « Ячейка» позволяет запускать одну ячейку, группу ячеек или все ячейки. Отсюда можно запускать ячейки в определенном порядке или менять их тип. Другая удобная функция в этом меню — это возможность очистить вывод ячейки.
Jupyter Notebook использует Ядро с привязкой к языкам, компьютерную программу, которая запускает и проводит внутренний анализ кода.
Вероятно, вы не будете так часто работать с ядром, но бывают случаи, когда вы отлаживаете Notebook, и вам нужно перезапустить ядро. Когда это произойдет, вы отправитесь именно сюда.
Widgets меню для сохранения и очистки состояния виджета. Виджеты — это в основном виджеты JavaScript, которые вы можете добавлять в свои ячейки для создания динамического содержимого с помощью Python (или другого ядра).
Наконец, у вас есть меню « Справка» , в котором вы можете узнать о сочетаниях клавиш Notebook, ознакомиться с пользовательским интерфейсом и множеством справочных материалов.
Пусковые терминалы и прочее
Jupyter Notebook также позволяет запускать больше, чем просто записные книжки. Вы также можете создать текстовый файл, папку или Терминал в своем браузере. Вернитесь на домашнюю страницу, которая открылась при первом запуске сервера Jupyter в http://localhost:8888/tree. Перейдите к кнопке New и выберите один из других вариантов.
Терминал, вероятно, является наиболее интересным из всех, поскольку он запускает терминал вашей операционной системы в браузере. Это позволяет запускать в браузере bash, Powershell и т. д. И запускать там любую команду, которая может вам понадобиться.
Просмотр того, что работает
Также на домашней странице вашего сервера Jupyter ( http://localhost:8888/tree) есть две другие вкладки: Запуск и Кластеры .
Running вкладка покажет вам , какие ноутбуки и терминалы вы в настоящее время работаете. Это полезно, когда вы хотите выключить сервер, но вам нужно убедиться, что вы сохранили все свои данные. К счастью, записные книжки автоматически сохраняются довольно часто, поэтому вы редко теряете данные. Но хорошо иметь возможность видеть, что работает, когда вам это нужно.
Еще одна приятная особенность этой вкладки заключается в том, что вы можете просмотреть свои запущенные приложения и закрыть их там.
Добавление описания к notebook
В Jupyter Notebook есть несколько инструментов, используемых для добавления описания. С их помощью можно не только оставлять комментарии, но также добавлять заголовки, списки и форматировать текст.
Типы ячеек
Технически существует четыре типа ячеек: Code, Markdown, Raw NBConvert и Heading.
Тип ячейки «Заголовок» больше не поддерживается и отобразит диалоговое окно, в котором говорится об этом. Вместо этого вы должны использовать Markdown для своих заголовков.
Тип ячеек Raw NBConvert предназначен только для особых случаев использования nbconvert инструмента командной строки. По сути, он позволяет вам управлять форматированием очень специфичным образом при преобразовании из записной книжки в другой формат.
Основные типы ячеек, которые вы будете использовать, — это типы ячеек Code и Markdown.
Вы уже узнали, как работают ячейки кода, поэтому давайте узнаем, как стилизовать текст с помощью Markdown.
Стилизация вашего текста
Jupyter Notebook поддерживает Markdown, язык разметки, являющийся надмножеством HTML. В этом руководстве будут рассмотрены некоторые основы того, что вы можете делать с Markdown.
Установите для новой ячейки значение Markdown, а затем добавьте в ячейку следующий текст:

Когда вы запустите ячейку, результат должен выглядеть так:

Если вы предпочитаете выделять текст жирным шрифтом, используйте двойное подчеркивание или двойную звездочку.
Заголовки
Создавать заголовки с помощью Markdown довольно просто.
Первым делом нужно поменять тип ячейки. Нажмите на выпадающее меню с текстом «Code» и выберите «Markdown». Это поменяет тип ячейки.
Попробуем несколько вариантов. Заголовки можно создавать с помощью символа # . Один такой символ создаст самый крупный заголовок верхнего уровня. Чем больше # , тем меньше будет текст.
Сделать текст курсивным можно с помощью символов * с двух сторон текста. Если с каждой стороны добавить по два * , то текст станет полужирным. Список создается с помощью тире и пробела для каждого пункта.

Затем, когда вы запустите ячейку, вы получите красиво отформатированный заголовок:

Создание списков
Вы можете создать список (маркеры), используя тире, знаки плюса или звездочки. Вот пример:

Подсветка кода и синтаксиса
Если вы хотите вставить пример кода, который не подразумевает дальнейший запуск пользователем, вы можете использовать Markdown, чтобы вставить его. Для выделения встроенного кода просто заключите код в обратные кавычки. Если вы хотите вставить блок кода, вы можете использовать тройные обратные кавычки, а также указать язык программирования:

Экспорт записных книжек
Когда вы работаете с Jupyter Notebooks, случаются моменты, когда вам нужно поделиться своими результатами с нетехническими специалистами. Когда вы столкнетесь с такой ситуацией, вам поможет nbconvert инструмент, устанавливаемый с Jupyter Notebook, для преобразования или экспорта вашего Notebook в один из следующих форматов:
- HTML
- LaTeX
- RevealJS
- Markdown
- ReStructured Text
- Executable script
nbconvert проект программного обеспечения с открытым исходным кодом, который поставляется в комплекте санаконда, Процитироватьnbconvert docs, это позволяет: презентация информации в знакомых форматах, таких как PDF.
Jinja — это язык шаблонов (или шаблонизатор), созданный для Python. Следует обратить внимание, что возможность экспорта во все вышеперечисленные форматы nbconvert также зависит от Pandoc и TeX. Если у вас нет ни одного из них, некоторые типы экспорта могут не работать.
Как использовать nbconvert
У nbconvert команды не так много параметров, что упрощает обучение ее использованию. Откройте терминал и перейдите в папку, содержащую записную книжку, которую вы хотите преобразовать. Основная команда преобразования выглядит так:
$ jupyter nbconvert —to
Пример использования
Представим, что у вас есть записная книжка с именем py_examples.ipynb и вы хотите преобразовать ее в PDF. Вот команда, которую вы бы использовали для этого:
$ jupyter nbconvert py_examples.ipynb --to pdf
Когда вы запустите эту команду, вы должны увидеть вывод, который расскажет вам о процессе преобразования.
nbconvert будет отображать предупреждения и ошибки, если они есть. Предполагая, что все идет по плану, теперь у вас будет py_examples.pdf файл в вашей папке.
Процесс преобразования для других типов файлов очень похож. Вам просто нужно указать, в nbconvert какой тип конвертировать (PDF, Markdown, HTML и т.д).
Использование меню
Вы также можете экспортировать текущий запущенный Блокнот, перейдя в меню « Файл» и выбрав « Загрузить как» .
Эта опция позволяет скачивать файлы во всех nbconvert поддерживаемых форматах . Преимущество использования меню в том, что вам совсем не нужно учить nbconvert, если вы этого не хотите. Однако я рекомендую сделать это, так как вы можете использовать его nbconvert для одновременного экспорта нескольких записных книжек, а это меню не поддерживает.
Расширения для Notebook
В этом разделе мы разберемся с расширениями Notebook.
Хотя в Jupyter Notebooks встроено множество функций, несмотря на это, вы можете добавлять новые, с помощью расширений. На самом деле Jupyter поддерживает четыре типа расширений:
- Kernel
- IPython kernel
- Notebook
- Notebook server
Что такое расширения?
Расширение Notebook ( nbextension ). С помощью nbconvert вы можете легко превратить ваш Jupyter в скрипт Python из командной строки. Это также позволяет вам превратить вашу записную книжку Jupyter в удобные для обмена форматы, такие как файлы .html и .pdf.
Где я могу найти расширения?
Вы можете использовать Google или искать расширения Jupyter Notebook. На самом деле их довольно много. Один из самых популярных наборов расширений называется jupyter_contrib_nbextensions , который вы можете получить на GitHub . На самом деле, это набор расширений, предоставляемых сообществом Jupyter и устанавливаемых с помощью pip .
Как их установить?
Большинство расширений Jupyter Notebook можно установить с помощью pip инструмента Python . Если вы обнаружите расширение, которое не может быть установлено pip , вам, вероятно, придется использовать следующую команду:
$ jupyter nbextension install EXTENSION_NAME
Это только установит расширение, но не сделает его активным. Вам нужно будет включить расширение после его установки, выполнив следующее:
$ jupyter nbextension enable EXTENSION_NAMEВозможно, вам потребуется перезапустить ядро Jupyter Notebook, чтобы увидеть расширение.
Есть хорошее мета-расширение под названием Jupyter NbExtensions Configurator , которое стоит приобрести для управления другими расширениями. Он позволяет вам включать и отключать ваши расширения из пользовательского интерфейса Jupyter Notebook, а также показывает все установленные в настоящее время расширения.
Заключение
Jupyter Notebook весьма полезен не только для изучения такого языка программирования, как Python, но и для обмена вашими данными.
Вы можете превратить свой Notebook в слайд-шоу или поделиться им в Интернете с помощью GitHub.
У Google и Microsoft есть собственная версия Notebook, которую вы можете использовать для создания и совместного использования Notebook в Google Colaboratory и Microsoft Azure Notebooks соответственно. На этих платформах вы также сможете найти что-то интересное для себя.
Project Jupyter недавно выпустил свой последний продукт — JupyterLab . JupyterLab включает Jupyter Notebook в интегрированный редактор типов разработки, который вы запускаете в своем браузере. Вы можете рассматривать JupyterLab как расширенную версию Jupyter Notebook. JupyterLab позволяет запускать терминалы, текстовые редакторы и консоли кода в вашем браузере в дополнение к записным книжкам.