![Nuances of Programming Jupyter](https://nuancesprog.ru/wp-content/uploads/2019/08/1_-fl4lgNce1lFovMYhFuabw-696x281.jpeg)
Руководство для начинающих о том, как сделать Jupyter Notebook быстрее, мощнее и круче
Самое классное в технологиях— это множество людей, которые усердно трудятся для улучшения нашей жизни. Каждый день они кровью и потом создают инструменты, упрощающие нашу работу.
Вам, к примеру, может казаться, что одной установки и запуска Jupyter Notebook вполне достаточно. Если все заработало, то и отлично! Но вы вряд ли знаете, что существует множество способов по настройке этой оболочки. А установка программы или пакета — это всего лишь начало!
Почему бы не потратить пару минут на то, чтобы сделать свой Jupyter Notebook удобнее для работы: быстрее, круче, мощнее и даже интереснее?
Данное руководство рассчитано на новичков в Jupyter Notebook. Мы начнем с самых основ, а затем перейдем к интересным примерам.
Сначала — о главном
После установки запустить Jupyter Notebook можно из терминала по команде:
jupyter notebook
теперь все готово для работы!
Изменение темы блокнота
Обычно первое, что люди хотят изменить в блокнотах Jupyter Notebook, — это тема оформления. Люди сходят с ума по темной теме! Изменить тему можно в любое время, и делается это довольно просто.
Для начала перейдите в терминал и установите jupyterthemes:
pip install jupyterthemes
Теперь можно установить мега-популярную темную тему:
jt -t chesterish
![](https://cdn-images-1.medium.com/max/800/1*7ZxTM-ARKnmfB3F_HINZqg.png)
Восстановить основную тему можно через
jt -r
Вот здесь можно найти GitHub-репозиторий jupyterthemes.
Основные команды
- Список горячих клавиш доступен из палитры команд, которая открывается по нажатию Ctrl + Shift + P или Cmd + Shift + P. Появившееся диалоговое окно очень похоже на Spotlight Search в Mac и позволяет выполнять команды по названию. Это очень удобно, если вы не знаете нужного сочетания клавиш.
![](https://cdn-images-1.medium.com/max/800/1*-TUorHL6dW2b-W-rdDEDww.png)
- 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).
![](https://cdn-images-1.medium.com/max/800/1*dTS9WnnLtmZPxgWP0HPWww.gif)
- В Jupiter Notebook можно запускать bash-команды. Для этого добавьте в начало строки восклицательный знак. Например: !pip install numpy
- Вы можете подавить вывод функции в последней строке кода, добавив в конце этой строки точку с запятой.
Комментирование/ удаление комментариев в блоках кода
Возможно, в процессе работы вам захочется добавить новые строки кода или закомментировать старые. Это весьма полезно при отладке и улучшении производительности кода.
Для добавления комментариев в код выделите нужные строки и нажмите cmd + /.
LaTex
Если напечатать LaTex в Markdown-ячейке, то она отобразится в виде формулы.
LaTex заменяет это:
$P(A mid B) = frac{P(B mid A)P(A)}{P(B)}$
на это:
![](https://cdn-images-1.medium.com/max/800/1*0IFeQ04AEWNgLi5R7fgSdQ.png)
Вывод всех значений ячейки
Как правило, в ячейке отображается только последний вывод. Для всего остального нужно прописывать print(). В принципе, ничего сложного, но это не всегда удобно. Изменить ситуацию можно, добавив вверху блокнота следующее:
from IPython.core.interactiveshell import InteractiveShell InteractiveShell.ast_node_interactivity = “all”
Несмотря на то, что по умолчанию выводится только последний результат:
![](https://cdn-images-1.medium.com/max/800/1*o-F0RO3ynf07QkFUGZBO8A.png)
… вы увидите их все!
![](https://cdn-images-1.medium.com/max/800/1*xbGPdoFFpShsU0Dbp6uAfw.png)
Если захотите вернуться к обычному представлению, то выполните следующее:
from IPython.core.interactiveshell import InteractiveShell InteractiveShell.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. Пользуйтесь на здоровье!
![](https://cdn-images-1.medium.com/max/800/1*6W0Zzz1z-b4mQJjvSURmxw.png)
Здесь подробно написано про расширения: как подключить, отключить и т.д.
В самом Jupyter Notebook детально описано, как добавлять, включать и работать с расширениями. Кликните по Nbextensions вверху экрана, нажмите на нужное расширение, пролистайте информацию о нем и посмотрите GIF-файл с его возможностями.
![](https://cdn-images-1.medium.com/max/800/1*fqsSvCkBfhwn5qFpB72flQ.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 — убирает все лишнее. Проверьте, что отключили фоны в настройках.
Специально для сайта ITWORLD.UZ. Новость взята с сайта NOP::Nuances of programming