Перейти к содержимому

Table of contents jupiter notebook как установить

  • автор:

Запуск записных книжек 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.

  1. Войдите в Студию машинного обучения Azure.
  2. Выберите рабочую область, если она еще не открыта
  3. Выберите Записные книжки слева.

Изменение записной книжки

Чтобы изменить записную книжку, откройте любую записную книжку, расположенную в разделе User Files (Файлы пользователя) рабочей области. Выберите ячейку, которую вы хотите изменить. Если у вас нет записных книжек в этом разделе, см. статью Создание файлов и управление ими в рабочей области.

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

Если выполняется вычислительная операция, можно также использовать функцию завершения кода на платформе IntelliSense в любой записной книжке Python.

Вы также можете запустить Jupyter или JupyterLab на панели инструментов записной книжки. Машинное обучение Azure не предоставляет обновления и не исправляет ошибки из Jupyter или JupyterLab, так как они находятся вне границы служба поддержки Майкрософт.

Режим фокусировки

Используйте режим фокусировки, чтобы развернуть текущее представление и сосредоточиться на активных вкладках. Режим фокусировки скрывает обозреватель файлов записных книжек.

  1. На панели инструментов окна терминала выберите режим фокусировки, чтобы включить режим фокусировки. В зависимости от ширины окна средство может находиться в меню . на панели инструментов.
  2. В режиме фокусировки вернитесь к стандартному представлению, выбрав Стандартное представление.

Завершение кода (IntelliSense)

IntelliSense — это вспомогательное средство для написания кода, включающее множество возможностей: «Список членов», «Сведения о параметрах», «Краткие сведения» и «Завершить слово». За несколько нажатий клавиш вы можете:

  • узнать больше о коде, который вы используете;
  • следить за параметрами, которые вы вводите;
  • добавлять вызовы в свойства и методы.

Совместное использование записной книжки

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

Другие пользователи рабочей области могут найти записную книжку в разделе «Записные книжки«, «Файлы пользователей» Студия машинного обучения Azure. По умолчанию записные книжки находятся в папке с вашим именем пользователя, и другие пользователи могут получить к ним доступ.

Вы также можете скопировать URL-адрес из браузера при открытии записной книжки, а затем отправить его другим пользователям. Если у них есть соответствующий доступ к рабочей области, они могут открыть записную книжку.

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

Совместная работа с комментариями записной книжки (предварительная версия)

Используйте комментарий записной книжки для совместной работы с другими пользователями, имеющими доступ к этой записной книжке.

Переключить отображение области комментариев можно с помощью инструмента Notebook comments (Комментарии записной книжки) в верхней части записной книжки. Если экран недостаточно слишком широкий, откройте этот инструмент, выбрав в конце набора инструментов.

Screenshot of notebook comments tool in the top toolbar.

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

Screenshot of add a comment to a code cell tool.

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

Текст, для которого был добавлен комментарий, будет отображаться в коде фиолетовым цветом. При выборе комментария в области комментариев записная книжка прокрутится до ячейки, содержащей выделенный текст.

Комментарии сохраняются в метаданных ячейки кода.

Очистка записной книжки (предварительная версия)

В ходе создания записной книжки обычно образуются ячейки, используемые для просмотра или отладки данных. Функция сбора поможет вам создать чистую записную книжку без этих лишних ячеек.

Screenshot: select the Gather icon

  1. Выполните все ячейки записной книжки.
  2. Выберите ячейку, содержащую код, который должна запускать новая записная книжка. Например, код, который отправляет эксперимент, или код, регистрирующий модель.
  3. Нажмите значок Сбор, отображаемый на панели инструментов ячейки.
  4. Введите имя новой, «собранной» записной книжки.

Новая записная книжка содержит только ячейки кода, при этом все ячейки должны получать те же результаты, что и выбранная ячейка для сбора.

Сохранение записной книжки и создание контрольных точек

Машинное обучение Azure создает файл контрольных точек при создании IPYNB-файла.

На панели инструментов записной книжки выберите меню, а затем Файл>Сохранить и создать контрольные точки, чтобы вручную сохранить записную книжку и добавить файл контрольных точек, связанный с записной книжкой.

Screenshot of save tool in notebook toolbar

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

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

Экспорт записной книжки

На панели инструментов записной книжки выберите меню и нажмите Экспортировать как, чтобы экспортировать записную книжку как любой из поддерживаемых типов:

Export a notebook to your computer

Экспортированный файл сохраняется на компьютере.

Запуск записной книжки или скрипта Python

Чтобы запустить записную книжку или скрипт Python, сначала подключитесь к выполняющемуся вычислительному экземпляру.

  • Если у вас нет вычислительной операции, выполните следующие действия, чтобы создать ее:
    1. На панели инструментов записной книжки или скрипта справа от раскрывающегося списка «Вычислительная среда» нажмите + Создать вычислительную среду. В зависимости от размера экрана этот параметр может находиться в меню . . Create a new compute
    2. Присвойте имя вычислительной операции и выберите значение Virtual Machine Size (Размер виртуальной машины).
    3. Выберите Создать.
    4. Вычислительный экземпляр подключается к файлу автоматически. Теперь можно запускать ячейки записной книжки или скрипт Python, используя инструмент слева от вычислительного экземпляра.
  • Если ваш вычислительный экземпляр остановлен, выберите Запустить вычислительную среду справа от раскрывающегося списка «Вычислительная среда». В зависимости от размера экрана этот параметр может находиться в меню . . Start compute instance

После подключения к вычислительному экземпляру используйте панель инструментов для запуска всех ячеек в записной книжке или control + ВВОД, чтобы запустить одну выбранную ячейку.

Только вы можете просматривать и использовать созданные вами вычислительные операции. Ваша папка User files (Файлы пользователя) хранится отдельно от виртуальной машины и является общей для всех вычислительных операций в рабочей области.

Изучение переменных в записной книжке

На панели инструментов записной книжки используйте Обозреватель переменных, чтобы отобразить имя, тип, длину и примеры значений для всех переменных, созданных в записной книжке.

Screenshot: Variable explorer tool

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

Screenshot: Variable explorer window

Навигация с помощью оглавления

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

Screenshot: Table of contents in the notebook

Изменение среды записной книжки

С помощью панели инструментов записной книжки можно изменить среду, в которой выполняется записная книжка.

Эти действия не изменят состояние записной книжки или значения каких-либо переменных в записной книжке:

Действие Результат
Остановка ядра Все выполняемые ячейки останавливаются. При выполнении ячейки ядро автоматически перезапускается.
Переход в другой раздел рабочей области Выполняемые ячейки останавливаются.

Эти действия сбрасывают состояние записной книжки и все переменные в записной книжке.

Действие Результат
Изменение ядра Записная книжка использует новое ядро.
Переключение вычисления Записная книжка автоматически использует новое вычисление.
Сброс вычисления Повторный запуск при попытке выполнить ячейку.
Остановка вычисления Ячейки не выполняются.
Открытие записной книжки в Jupyter или JupyterLab Записная книжка открывается на новой вкладке.

Добавление новых ядер

Используйте терминал для создания и добавления новых ядер в вычислительный экземпляр. Записная книжка автоматически находит все ядра Jupyter, установленные на подключенном вычислительном экземпляре.

Используйте раскрывающееся меню ядра справа, чтобы перейти на любое из установленных ядер.

Управление пакетами

Так как вычислительный экземпляр имеет несколько ядер, убедитесь, что используются %pip или %conda волшебные функции, которые устанавливают пакеты в текущее работающее ядро. Не используйте !pip или !conda не относится ко всем пакетам (включая пакеты за пределами запущенного ядра).

Индикаторы состояния

Индикатор рядом с раскрывающимся списком Compute (Вычисление) отображает его состояние. Состояние также отображается в самом раскрывающемся списке.

Color Состояние вычисления
Зеленый Вычисление выполняется
Красный Сбой при вычислении
Черный Вычисление остановлено
Голубой Создание, запуск, перезапуск, настройка вычисления
Серый Идет процесс удаления или остановки вычисления

Индикатор рядом с раскрывающимся списком Kernel (Ядро) отображает его состояние.

Color Состояние ядра
Зеленый Ядро подключено, неактивно или занято
Серый Ядро не подключено

Сведения о вычислениях

Сведения о вычислительных операциях см. на странице Compute (Вычисления) в Студии.

Полезные сочетания клавиш

Аналогично Jupyter Notebook, Студия машинного обучения Azure записные книжки имеют модальный пользовательский интерфейс. Клавиатура выполняет разные действия в зависимости от того, в каком режиме находится ячейка записной книжки. Студия машинного обучения Azure записные книжки поддерживают следующие два режима для заданной ячейки кода: режим команд и режим редактирования.

Сочетания клавиш для режима команд

Ячейка находится в командном режиме, если текстовый курсор не запрашивает ввод. Когда ячейка находится в режиме команд, вы можете редактировать записную книжку целиком, но не вводить ее в отдельные ячейки. Войдите в режим команд, нажав ESC или щелкнув за пределами области редактора ячейки с помощью мыши. Левая граница активной ячейки — синяя и сплошная, а кнопка Запуск — синяя.

Notebook cell in command mode

Ярлык 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 или выберите область редактора ячейки. Левая граница активной ячейки — зеленая и пунктирная, а кнопка Запуск — зеленая. Вы также видите курсор в ячейке в режиме редактирования.

Notebook cell in edit mode

С помощью приведенных ниже сочетаний клавиш вы можете легче перемещаться и выполнять код в записных книжках Машинного обучения 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

    Следующие шаги

    • Выполнение первого эксперимента
    • Резервное копирование хранилища файлов с помощью моментальных снимков
    • Работа в безопасных средах

    Руководство для начинающих о том, как сделать Jupyter Notebook быстрее, мощнее и круче

    Самое классное в технологиях— это множество людей, которые усердно трудятся для улучшения нашей жизни. Каждый день они кровью и потом создают инструменты, упрощающие нашу работу.

    Вам, к примеру, может казаться, что одной установки и запуска 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$

    Вывод всех значений ячейки

    Как правило, в ячейке отображается только последний вывод. Для всего остального нужно прописывать print() . В принципе, ничего сложного, но это не всегда удобно. Изменить ситуацию можно, добавив вверху блокнота следующее:

    from IPython.core.interactiveshell import InteractiveShellInteractiveShell.ast_node_interactivity = “all”

    Несмотря на то, что по умолчанию выводится только последний результат:

    … вы увидите их все!

    Если захотите вернуться к обычному представлению, то выполните следующее:

    from IPython.core.interactiveshell import InteractiveShellInteractiveShell.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 — убирает все лишнее. Проверьте, что отключили фоны в настройках.

    Как оптимизировать работу в Jupyter Notebook

    Оптимизируем работу в Jupyter Notebook с помощью основных команд и расширений и добавляем немного магии, чтобы всё стало ещё быстрее и проще.

    Jupyter Notebook (ранее известный как IPython Notebook) — веб-оболочка для нескольких языков программирования: Julia, Python и R. Это одна из множества технологий, которые позволяют делать жизнь людей проще и лучше. Но установка пакета — только начало, есть множество вещей, которые можно доработать, чтобы сделать процесс разработки ещё удобнее.

    В этой статье предполагается, что вы мало знакомы с Jupyter Notebook. Прежде чем мы перейдём к более хитрым трюкам, речь пойдёт о базовых вещах.

    Если вы только открываете для себя эту тему, лучше сначала изучить вопрос с установкой и работой Anaconda.

    Начало работы

    После установки можно сразу приступить к работе. Для этого необходимо выполнить следующее:

    $ jupyter notebook 

    Смена темы оформления

    Чтобы настроить многими любимый тёмный режим, нужно зайти в терминал и установить Jupyterthemes:

    $ pip install jupyterthemes 

    Теперь можно установить тёмную тему:

    $ jt -t chesterish 

    Как оптимизировать работу в Jupyter Notebook 1

    Восстановить основную тему можно в любое время:

    $ jt -r 

    Найти Jupyterthemes можно в репозитории на GitHub.

    Основные команды

    Быстро получить доступ к сочетаниям клавиш можно с помощью комбинаций Ctrl+Shift+P или Cmd+Shift+P , тогда откроется диалоговое окно, похожее на Spotlight Search на Mac. Это поможет вам запустить любую команду по имени, что очень удобно, когда ещё не знаешь нужного сочетания клавиш.

    Как оптимизировать работу в Jupyter Notebook 2

    Shift+Enter позволяет запустить текущую ячейку.

    Esc переводит в командный режим. Он позволяет перемещаться по документу с помощью клавиш-стрелок.

    В командном режиме можно использовать:

    • А , чтобы вставить новую ячейку над текущей ячейкой;
    • B , чтобы вставить новую ячейку под текущей ячейки;
    • M , чтобы изменить текущую ячейку на Markdown;
    • Y , чтобы перейти обратно в кодовую ячейку;
    • D+D (двойное нажатие клавиши), чтобы удалить текущую ячейку;
    • Enter , чтобы вернуться из командного режима в режим редактирования.

    Shift+Tab — покажет документацию для объекта, который вы только что ввели в ячейку кода. Для переключения между несколькими режимами продолжайте нажимать это сочетание клавиш.
    Esc+F — поможет найти и заменить информацию в коде (кроме выходных данных).
    Esc+0 — переключает вывод ячейки.
    Shift+J (или Shift+Down ) — выделяет ячейки ниже текущей. Shift+K (или Shift+Up ) выделяет ячейки выше текущей. Как только ячейки выбраны, их можно удалить/скопировать/вырезать/вставить/запустить как пакет. Это удобно, когда нужно переместить только часть документа.
    Shift+M — позволяет объединить несколько ячеек.

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

    !pip install numpy

    Чтобы отключить отображение результата выражения в последней строчке ячейки, добавьте в конце последней строчки точку с запятой ( ; ).

    Комментирование/раскомментирование блока кода

    Добавить новые строки кода и закомментировать старые можно сочетанием клавиш. Выделите все нужные строки и нажмите Cmd + / , это закомментирует выделенный код.

    LaTex

    Вы можете писать на LaTex в Markdown-ячейках, и они будет отображены в виде формулы.

    $P(A \mid B) = \frac$ 

    Данная строка будет преобразована в следующую формулу:

    Как оптимизировать работу в Jupyter Notebook 5

    Отображение данных из всех ячеек

    По умолчанию отображается только последний вывод в ячейке. Для всего остального необходимо вручную добавить print() . Такой вариант хорош, но не очень удобен. Можно изменить это, добавив вверху документа следующее:

    from IPython.core.interactiveshell import InteractiveShell InteractiveShell.ast_node_interactivity = "all" 

    Отображение по умолчанию:

    Как оптимизировать работу в Jupyter Notebook 6

    Отображение всех ячеек:

    Как оптимизировать работу в Jupyter Notebook 7

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

    from IPython.core.interactiveshell import InteractiveShell InteractiveShell.ast_node_interactivity = "last_expr" 

    Изменение настроек следует запускать в отдельной ячейке, чтобы оно вступило в силу при следующем запуске ячейки.

    Расширения

    Поскольку Jupyter Notebook имеет открытый исходный код, для него было разработано множество расширений. Вы можете поработать с официальным списком расширений IPython или посмотреть другие популярные расширения.

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

    $ 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 8

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

    Для работы просто нажмите «Nbextensions» в верхней части экрана, выберите интересующее вас расширение, а затем прокрутите вниз, чтобы найти нужную информацию.

    Популярные расширения

    • Scratchpad — позволяет создать временную ячейку для выполнения быстрых вычислений без создания новой ячейки в workbook.
    • Hinterland — делает доступным меню автозаполнения кода для каждого нажатия клавиши в ячейке кода, а не только для клавиши Tab.
    • Snippets — добавляет раскрывающееся меню для вставки фрагментов в текущий документ.
    • Autopep8 — автоматически форматирует код на Python в соответствии со стилевым руководством PEP 8. Убедитесь, что на локальной машине выполнена команда $ pip install autopep8 —user . Это гарантирует, что вы будете следовать правильным соглашениям о написании кода в Python.
    • Split Cells Notebook — позволяет разделять ячейки. Войдите в командный режим и используйте Shift+S , чтобы переключить текущую ячейку между разделённой и полной шириной.
    • Table of Contents — позволяет собирать все запущенные заголовки и отображать их в плавающем окне, в виде боковой панели или с помощью меню навигации.
    • A Code Prettifier — очищает, форматирует и выравнивает ваш код за вас.
    • Notify — отображает уведомление на рабочем столе, когда ядро бездействует. Это удобно, когда вы запускаете код, выполнение которого занимает больше пары секунд.
    • Code Folding — в режиме редактирования сбоку появляется треугольник, который позволяет скрывать блоки кода. Удобно, когда есть большие функции, которые вы хотите скрыть.
    • Zen mode — делает детали менее загроможденными. Убедитесь, что фоны в настройках отключены.

    Магия

    Магия — это удобные команды, которые облегчают жизнь, когда вы хотите выполнить определённые задачи. Они часто выглядят как команды Unix, но все они реализованы на Python.

    Есть два вида магии: строчная магия (применяется к одной строке) и магия ячейки (применяется ко всей ячейке). Строчная магия начинается с символа процента ( % ), а магия ячейки — с двух таких символов ( %% ).

    Чтобы увидеть доступную магию, нужно запустить следующее:

    %lsmagic 

    Как оптимизировать работу в Jupyter Notebook 10

    Настройка среды разработки

    Можно легко управлять переменными среды вашего документа с помощью %env без перезагрузок. Выполните эту команду без каких-либо переменных, она отобразит все ваши переменные среды.

    Как оптимизировать работу в Jupyter Notebook 11

    Вставка кода

    С помощью %load можно вставить код из внешнего скрипта.

    %load basic_imports.py 

    Данная команда возьмёт файл basic_imports.py и загрузит его в ваш документ.

    Экспорт содержимого ячейки

    Это очень удобная функция. Она позволяет в любое время экспортировать содержимое ячейки с помощью %%writefile .

    %%writefile thiscode.py Здесь мог бы быть какой-нибудь ваш код или функция, которые вы хотите экспортировать и, возможно, использовать позже. 

    Это очень полезно, если вы используете один и тот же импорт в каждом документе или постоянно добавляете одну и ту же функцию. Теперь вы можете написать код один раз и использовать его везде.

    Например, вы можете написать файл basic_imports.py , содержащий следующий код:

    %%writefile basic_imports.py import pandas as pd import numpy as np import matplotlib.pyplot as plt 

    Это создаст файл .py , содержащий ваши основные импорты.

    Дальше можно его загрузить в любое время, написав:

    %load basic_imports.py 

    Выполнение этой команды заменяет содержимое ячейки загруженным файлом.

    # %load imports.py import pandas as pd import numpy as np import matplotlib.pyplot as plt 

    Теперь вы можете снова запустить ячейку, чтобы импортировать все ваши модули.

    Сохранение и повторное использование кода

    Как и у большинства людей, у вас периодически могут быть одни и те же задания. Возможно, есть несколько уравнений, которые вы постоянно решаете, или несколько строк кода, которые вы создавали много раз. Jupyter позволяет сохранять фрагменты кода как исполняемые макросы. Поскольку макросы — это просто код, он может содержать переменные, которые должны быть определены перед выполнением.

    name = 'Kitten' 

    Теперь, чтобы определить макрос, нужен код для использования. Можно сохранить практически всё, от строки до функции.

    print('Hello, %s!' % name) Hello, Kitten! 

    Для настройки макроса используется магия %macro и %load . Обычно принято имена макросов начинать с двойного подчеркивания, чтобы отличать их от других переменных.

    %macro -q __hello_you 32 

    Магия %macro принимает имя и номер ячейки (или несколько номеров), а специальный ключ -q делает магию менее подробной. %store позволяет сохранить любую переменную для использования в других сессиях. В коде выше передаётся имя созданного макроса, чтобы можно было использовать его снова после выключения ядра или в других документах.

    Чтобы загрузить макрос, достаточно выполнить следующее.

    %load __hello_you 

    Чтобы выполнить макрос, можно просто запустить ячейку, которая содержит имя макроса.

    __hello_you Hello, Kitten! 

    Для наглядного примера измените переменную, использованную в макросе.

    name = 'Muffins' 

    При запуске макроса захватывается измененное значение.

    __hello_you Hello, Muffins! 

    Как оптимизировать работу в Jupyter Notebook 13

    Это работает, потому что макросы выполняют сохраненный код в пространстве имён ячейки. Если name будет не определено, вы получите ошибку.

    Если вы хотите использовать один и тот же макрос во всех своих документах, в этом может помочь %store .

    %store позволяет хранить макрос и использовать его во всех Jupyter Notebook.

    Как оптимизировать работу в Jupyter Notebook 14

    %store -r __hello_you name = 'Rambo' %load __hello_you Hello, Rambo! 

    Как оптимизировать работу в Jupyter Notebook 15

    Магия run

    %run выполнит ваш код и отобразит любые выводные данные, включая графики Matplotlib. Таким образом можно выполнять даже целые документы. Также %run может выполнить код Python из файлов .py .

    Магия pycat

    Использование %pycat покажет содержимое скрипта, если вы не уверены, что в нём находится.

    %pycat basic_imports.py 

    Как оптимизировать работу в Jupyter Notebook 16

    Автосохранение

    %autosave определяет, как часто ваш документ будет автоматически сохранять контрольные точки в файл.

    %autosave 60 

    После данной команды автосохранение будет происходить каждые 60 секунд.

    Отображение графиков

    %matplotlib inline 

    Эта команда отобразит графики Matplotlib прямо в выводе ячейки. Это означает, что диаграммы и графики Matplotlib можно включать прямо в свои документы. Имеет смысл запустить команду в начале вашего документа, прямо в первой ячейке.

    Как оптимизировать работу в Jupyter Notebook 17

    Измерение времени

    Для измерения времени используются две магические команды IPython: %%time и %timeit . Они очень полезны, когда ваш код медленно выполняется и вы пытаетесь определить, в чём проблема. Они обе имеют как строковый режим, так и режим запуска из ячейки.

    Основное различие между %timeit и %time состоит в том, что первая выполняет указанный код много раз и вычисляет среднее значение.

    %%time даст вам информацию о единичном запуске кода в вашей ячейке.

    %%timeit использует Python-модуль timeit, который выполняет выражение множество раз, а затем выдаёт среднее значение результатов. Вы можете указать количество запусков с помощью опции -n , количество повторов с помощью -r и т. д.

    Запуск кода из другого ядра

    Можно запустить выполнение ячейки с использованием указанного языка. Существуют расширения для нескольких языков. Есть опции вроде:

    • %%HTML ,
    • %%python ,
    • %%python2 ,
    • %%python3 ,
    • %%ruby ,
    • %%perl ,
    • %%capture ,
    • %%javascript ,
    • %%js ,
    • %%latex ,
    • %%markdown ,
    • %%pypy .

    Например, для рендеринга HTML в вашем документе вы должны выполнить следующее:

    %%HTML This is really neat! 

    Как оптимизировать работу в Jupyter Notebook 18

    Вы также можете использовать LaTeX напрямую когда угодно:

    %%latex This is an equation: $E = mc^2$ 

    Как оптимизировать работу в Jupyter Notebook 19

    Магия who

    Команда %who без аргументов выводит список всех переменных, существующих в глобальной области видимости. При передаче параметра, например str , будут перечислены только переменные этого типа:

    %who str 

    Если набрать данную команду, результат будет следующим.

    Как оптимизировать работу в Jupyter Notebook 20

    Магия prun

    %prun показывает, сколько времени ваша программа потратила на каждую функцию. Использование %prun statement_name даёт упорядоченную таблицу, показывающую, сколько раз каждая внутренняя функция была вызвана в блоке. А также время, которое потребовалось на каждый вызов, и суммарное время всех запусков функции.

    Магия отладчика в Python

    Jupyter имеет собственный интерфейс для отладчика Python. Это позволяет заглянуть внутрь функции и посмотреть, что там происходит. Включить эту магию можно, запустив %pdb в начале ячейки.

    Графики высокого разрешения

    Одна простая магическая строка IPython может предоставит вам на выводе график с двойным разрешением для экранов Retina. Стоит отметить, что на других экранах график может не отображаться.

    %config InlineBackend.figure_format ='retina' 

    Пропуск ячейки для выполнения

    Просто добавьте %%script false в начале ячейки:

    %%script false Можете поместить здесь длинный код, который вхотите исключить из выполнения прямо сейчас 

    Оповещения

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

    На Linux и Mac

    import os duration = 1 # секунды freq = 440 # Гц os.system('play --no-show-progress --null --channels 1 synth %s sine %f' % (duration, freq)) 

    На Windows

    import winsound duration = 1000 # миллисекунды freq = 440 # Гц winsound.Beep(freq, duration) 

    Чтобы использовать такое оповещение, у вас должен быть установлен sox . Установить его можно с помощью следующей строки:

    $ brew install sox 

    Но это сработает, только если вы пользуетесь Homebrew.

    Выводы

    Изложенного в этой статье должно быть достаточно для успешного начала работы в Jupyter Notebook. Если вы знаете какие-либо советы и рекомендации, которые могут помочь другим новичкам, напишите об этом в комментариях ниже.

    Если вы хотите подняться на уровень повыше, вас может заинтересовать другая статья по оптимизации 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.

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

    1. Autopep8

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

    Напишу простенький алгоритм, принимающий на вход 3 значения и выводящий True или False.

    Специально сделала код плохо читаемым. Теперь применю новую кнопку, которая отформатирует весь код согласно стандартам pep8.

    2. Table of Contents (2)

    На втором месте для меня является создание заголовков в коде для быстрого перемещения между ними. Больше всего данная функция удобна при создании учебных notebook или демонстрационных.

    Например, вот оглавление из моих личных учебных notebook’ов:

    Удобно, что при нажатии на интересующий заголовок тетрадь переходит к этому месту.

    Создам пару заголовков в тренировочном notebook.

    Для этого создаю ячейку markdown и напишу заголовок, используя «#» для обозначения уровня заголовка. Чем больше #, тем больше уровень заголовка.

    # Test pep8 – это первый уровень заголовка. При нажатии на кнопку списков, слева высвечивается оглавление. Оно также автоматически нумеруется.

    3. Codefolding

    Внимательные читатели уже могли обратить внимание на серые стрелочки рядом с блоками кода на скриншотах выше.

    При их нажатии блок скрывается/раскрывается. Например, блок if и else.

    Данный функционал удобен при значительном объёме кода для лучшего понимания, также при разборе чужого кода или когда необходимо сконцентрироваться на определенной «ветке» алгоритма.

    4. ExecuteTime

    Также очень полезный инструмент, который позволяет отслеживать время выполнения ячейки без дополнительных импортов и применения функций. По умолчанию выводит данный параметр к каждой ячейке под ячейкой с кодом.

    5. table_beautifier

    Инструмент для преобразования отображения таблиц. Очень удобен при работе с небольшими датасетами или отфильтрованными частями большого. На скриншотах ниже представлен обычный вариант numpy датасета (слева) и с использованием расширения table_beautifier (справа).

    Главное различие – возможность сортировки значений по столбцам.

    6. Variable Inspector

    Расширение для просмотра всех переменных в памяти, их типа, занимаемого места и значения. При добавлении расширения добавляется значок, как на скриншоте снизу.

    В notebook при нажатии кнопки Variable Inspector появляется окно, которое можно перемещать, изменять размер и сворачивать.

    В окне отображаются все переменные в памяти, их названия, типы, занимаемый размер и значение (для объектов различных модулей также поддерживается).

    Таким образом, можно значительно упростить и оптимизировать процесс работы в Jupyter Notebook. Расширения будут полезны не только новичкам, но и опытным пользователям. Каждый сможет подобрать набор расширений под свои нужды.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *