Юпитер ноутбук перенос строки

Обновлено: 06.07.2024

27 советов, приемов и сочетаний клавиш Jupyter Notebook

Эта статья основана на статье, которая первоначально появилась в блоге Алекса Рогожникова.

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


По умолчанию Jupyter Notebook использует ядро ​​Python, поэтому изначально оно называлось IPython Notebook. Блокнот Jupyter является продуктом проекта Jupyter. Название Jupyter является аббревиатурой трех языков, которые он будет обслуживать: Julia, PYThon и R. Это имя гомофонично с «Jupiter». Эта статья познакомит вас с 27 советами и рекомендациями по использованию Jupyter.

1. Сочетания клавиш

Специалисты знают, что сочетания клавиш могут сэкономить много времени. Jupyter предоставляет список сочетаний клавиш в верхнем меню: Справка> Сочетания клавиш. Каждый раз, когда вы обновляете Jupyter, обязательно посмотрите этот список, потому что новые ярлыки постоянно добавляются. Другой способ - использовать Cmd + Shift + P (Ctrl + Shift + P в Linux и Windows), чтобы вызвать командную панель. Это диалоговое окно позволяет вам запускать любую команду по имени - особенно полезно, когда вы не знаете, какая быстрая клавиша для операции была или если для этой операции нет какой-либо комбинации клавиш. Эта функция очень похожа на поиск Spotlight на компьютерах Apple, после того как вы начнете использовать его, вы захотите прекратить.



Esc + F Найти и заменить в коде, игнорируя вывод.

Esc + O Переключение между ячейкой и выходным результатом.

Выберите несколько ячеек:

Shift + J или Shift + Down, чтобы выбрать следующую ячейку.

Shift + K или Shift + Up, чтобы выбрать предыдущую ячейку.

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

Shift + M объединить ячейки.


2. Идеальное отображение переменных

Одна вещь хорошо известна. Поместите имя переменной или оператор, который не определяет результат вывода, в последнюю строку ячейки. Без оператора печати Jupyter также отобразит значение переменной. Это особенно полезно при использовании Pandas DataFrames, поскольку на выходе получается аккуратная таблица.


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

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

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

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

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

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

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

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

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

Иллюстрациия к статье «Как оптимизировать работу в Jupyter Notebook»

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

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

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

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

Иллюстрациия к статье «Как оптимизировать работу в Jupyter Notebook»

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

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

PricewaterhouseCoopers , Удалённо , По итогам собеседования

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

  • А , чтобы вставить новую ячейку над текущей ячейкой;
  • 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-ячейках, и они будет отображены в виде формулы.

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

Иллюстрациия к статье «Как оптимизировать работу в Jupyter Notebook»

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

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

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

Иллюстрациия к статье «Как оптимизировать работу в Jupyter Notebook»

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

Иллюстрациия к статье «Как оптимизировать работу в Jupyter Notebook»

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

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

Расширения

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

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

Или с помощью Anaconda:

Как только они будут установлены, вы увидите вкладку Nbextensions.

Иллюстрациия к статье «Как оптимизировать работу в Jupyter Notebook»

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

Для работы просто нажмите «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.

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

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

Иллюстрациия к статье «Как оптимизировать работу в Jupyter Notebook»

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

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

Иллюстрациия к статье «Как оптимизировать работу в Jupyter Notebook»

Вставка кода

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Иллюстрациия к статье «Как оптимизировать работу в Jupyter Notebook»

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

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

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

Иллюстрациия к статье «Как оптимизировать работу в Jupyter Notebook»

Иллюстрациия к статье «Как оптимизировать работу в Jupyter Notebook»

Магия run

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

Магия pycat

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

Иллюстрациия к статье «Как оптимизировать работу в Jupyter Notebook»

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Иллюстрациия к статье «Как оптимизировать работу в Jupyter Notebook»

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

Иллюстрациия к статье «Как оптимизировать работу в Jupyter Notebook»

Магия who

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

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

Иллюстрациия к статье «Как оптимизировать работу в Jupyter Notebook»

Магия prun

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

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

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

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

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

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

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

Оповещения

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

На Linux и Mac

На Windows

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

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

Выводы

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

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


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

Вам, к примеру, может казаться, что одной установки и запуска Jupyter Notebook вполне достаточно. Если все заработало, то и отлично! Но вы вряд ли знаете, что существует множество способов по настройке этой оболочки. А установка программы или пакета — это всего лишь начало!

Почему бы не потратить пару минут на то, чтобы сделать свой Jupyter Notebook удобнее для работы: быстрее, круче, мощнее и даже интереснее?

Данное руководство рассчитано на новичков в Jupyter Notebook. Мы начнем с самых основ, а затем перейдем к интересным примерам.

Сначала — о главном

После уста н овки запустить Jupyter Notebook можно из терминала по команде:

теперь все готово для работы!

Изменение темы блокнота

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

Для начала перейдите в терминал и установите jupyterthemes:

Теперь можно установить мега-популярную темную тему:


Восстановить основную тему можно через

Вот здесь можно найти 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 заменяет это:


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

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

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


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


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

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

Расширения

Jupyter Notebook — это веб-приложение с открытым кодом, поэтому для него написано множество расширений. Все поддерживаемые расширения можно найти в официальном списке iPython-расширений или популярной подборке расширений.

Установить Nbextensions из командной строки довольно просто.

С помощью pip:

или Anaconda:

Сразу после их установки вы увидите вкладку Nbextensions. Пользуйтесь на здоровье!


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

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

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

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

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

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

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

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

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

Иллюстрациия к статье «Как оптимизировать работу в Jupyter Notebook»

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

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

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

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

Иллюстрациия к статье «Как оптимизировать работу в Jupyter Notebook»

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

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

PricewaterhouseCoopers , Удалённо , По итогам собеседования

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

  • А , чтобы вставить новую ячейку над текущей ячейкой;
  • 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-ячейках, и они будет отображены в виде формулы.

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

Иллюстрациия к статье «Как оптимизировать работу в Jupyter Notebook»

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

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

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

Иллюстрациия к статье «Как оптимизировать работу в Jupyter Notebook»

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

Иллюстрациия к статье «Как оптимизировать работу в Jupyter Notebook»

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

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

Расширения

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

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

Или с помощью Anaconda:

Как только они будут установлены, вы увидите вкладку Nbextensions.

Иллюстрациия к статье «Как оптимизировать работу в Jupyter Notebook»

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

Для работы просто нажмите «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.

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

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

Иллюстрациия к статье «Как оптимизировать работу в Jupyter Notebook»

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

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

Иллюстрациия к статье «Как оптимизировать работу в Jupyter Notebook»

Вставка кода

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Иллюстрациия к статье «Как оптимизировать работу в Jupyter Notebook»

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

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

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

Иллюстрациия к статье «Как оптимизировать работу в Jupyter Notebook»

Иллюстрациия к статье «Как оптимизировать работу в Jupyter Notebook»

Магия run

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

Магия pycat

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

Иллюстрациия к статье «Как оптимизировать работу в Jupyter Notebook»

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Иллюстрациия к статье «Как оптимизировать работу в Jupyter Notebook»

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

Иллюстрациия к статье «Как оптимизировать работу в Jupyter Notebook»

Магия who

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

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

Иллюстрациия к статье «Как оптимизировать работу в Jupyter Notebook»

Магия prun

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

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

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

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

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

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

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

Оповещения

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

На Linux и Mac

На Windows

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

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

Выводы

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

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

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