Jupyter Notebook — это удобно!
Код организван отдельными болками. Блоки кода можно выполнять в произвольном порядке. Сочетает в себе достоинства полноценных скриптов и интерактивной оболочки. Порядок выполнения блоков указан слева от ячейки.
In [18]:print(math.sqrt(4))In [17]:import mathК коду можно добавлять пояснения в ячейках с режимом markdown. Поддерживается различное форматирование: bold, italic, $\LaTeX$
заголовки
различного
уровня
картиночки
Для некоторых объектов доступно особое отображение.
In [4]:import numpy as np np.array([[1,2,3],[4,5,6],[7,8,9]])Out[4]:array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])Горячие клавиши
Использование горячих клавиш позволяет очень мильно облегчить и ускорить работу с любой программой, особенно связанной со вводом текста. В плане горячих клавиш очень продвинутым является текстовый редактор vim. В нем существует отдельный режим, мозволяющий пользоваться горячими клавишами. В Jupyter notebook поддерживается та же концепция.
Существуют 2 режима работы: режим ввода и командный режим. Режим ввода отображается зеленой рамкой вокруг активной ячейки, командный режим -- синей. Для того, чтобы переключиться из режима ввода в командный режим необходимо нажать Esc , переход в режим редактирования осуществляется по нажатию клавиши Enter .
В командном режиме часто используются следующие горячие клавиши:
- b -- вставить пустую ячейку после текущей
- a -- вставить пустую ячейку перед текучей
- c -- копировать текущую ячейку
- x -- вырезать ячейку
- v -- вставить ячейку из буфера после текущей
- dd -- удалить текущую ячейку
- z -- отменить предыдущее действие (в юпитере не последней версии можно отменить ТОЛЬКО ОДНО действие)
- m -- перевести ячейку в режим Markdown
- y -- перевести ячейку в режим кода
- l -- отображать номера строк
- o -- скрыть/показать вывод текущей ячейки
- ii -- остановить выполнение текущей ячейки
- 00 -- перезагрузить ядро
- s -- сохранить notebook
- h -- Показать справку по горячим клавишам
Некоторые сочетания используются в режиме редактирования:
- Tab (в начале строки либо для выделенных строк) -- добавить отступ
- Shift+Tab (в начале строки либо для выделенных строк) -- убрать отступ
- Tab -- автодополнение вводимой команды
- Shift+Tab -- показать docstring введеннной команды
- Clrl+/ -- закомментировать выделеные строки
- Shift+Enter -- выполнить текущую ячейку кода и перейти к следующей
- Ctrl+Enter -- выполнить текущую ячейку кода и остаться на ней
- Alt+Enter -- выполнить текущую ячейку кода и создать новую
Также Jupytr Notebook имеет большое количество встроенных "магических" функций. С некоторыми познакомимся в этом курсе, про другие стоит рассказать сразу.
Как оптимизировать работу в Jupyter Notebook
Оптимизируем работу в Jupyter Notebook с помощью основных команд и расширений и добавляем немного магии, чтобы всё стало ещё быстрее и проще.
Jupyter Notebook (ранее известный как IPython Notebook) — веб-оболочка для нескольких языков программирования: Julia, Python и R. Это одна из множества технологий, которые позволяют делать жизнь людей проще и лучше. Но установка пакета — только начало, есть множество вещей, которые можно доработать, чтобы сделать процесс разработки ещё удобнее.
В этой статье предполагается, что вы мало знакомы с Jupyter Notebook. Прежде чем мы перейдём к более хитрым трюкам, речь пойдёт о базовых вещах.
Если вы только открываете для себя эту тему, лучше сначала изучить вопрос с установкой и работой Anaconda.
Как настроить Jupyter Notebook для Python 3
Начало работы
После установки можно сразу приступить к работе. Для этого необходимо выполнить следующее:
$ jupyter notebookСмена темы оформления
Чтобы настроить многими любимый тёмный режим, нужно зайти в терминал и установить Jupyterthemes:
$ pip install jupyterthemesТеперь можно установить тёмную тему:
$ jt -t chesterish
Восстановить основную тему можно в любое время:
$ jt -rНайти Jupyterthemes можно в репозитории на GitHub.
Основные команды
Быстро получить доступ к сочетаниям клавиш можно с помощью комбинаций Ctrl+Shift+P или Cmd+Shift+P , тогда откроется диалоговое окно, похожее на Spotlight Search на Mac. Это поможет вам запустить любую команду по имени, что очень удобно, когда ещё не знаешь нужного сочетания клавиш.
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$
Данная строка будет преобразована в следующую формулу:
Отображение данных из всех ячеек
По умолчанию отображается только последний вывод в ячейке. Для всего остального необходимо вручную добавить print() . Такой вариант хорош, но не очень удобен. Можно изменить это, добавив вверху документа следующее:
from IPython.core.interactiveshell import InteractiveShell InteractiveShell.ast_node_interactivity = "all"Отображение по умолчанию:
Отображение всех ячеек:
Чтобы вернуться к настройкам по умолчанию, выполните следующее:
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.
В этом репозитории можно узнать больше о расширениях, об их включении в ваш документ и исключении из него.
Для работы просто нажмите «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
Настройка среды разработки
Можно легко управлять переменными среды вашего документа с помощью %env без перезагрузок. Выполните эту команду без каких-либо переменных, она отобразит все ваши переменные среды.
Вставка кода
С помощью %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!
Это работает, потому что макросы выполняют сохраненный код в пространстве имён ячейки. Если name будет не определено, вы получите ошибку.
Если вы хотите использовать один и тот же макрос во всех своих документах, в этом может помочь %store .
%store позволяет хранить макрос и использовать его во всех Jupyter Notebook.
%store -r __hello_you name = 'Rambo' %load __hello_you Hello, Rambo!
Магия run
%run выполнит ваш код и отобразит любые выводные данные, включая графики Matplotlib. Таким образом можно выполнять даже целые документы. Также %run может выполнить код Python из файлов .py .
Магия pycat
Использование %pycat покажет содержимое скрипта, если вы не уверены, что в нём находится.
%pycat basic_imports.py
Автосохранение
%autosave определяет, как часто ваш документ будет автоматически сохранять контрольные точки в файл.
%autosave 60После данной команды автосохранение будет происходить каждые 60 секунд.
Отображение графиков
%matplotlib inlineЭта команда отобразит графики 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 в вашем документе вы должны выполнить следующее:
%%HTML This is really neat!
Вы также можете использовать LaTeX напрямую когда угодно:
%%latex This is an equation: $E = mc^2$
Магия who
Команда %who без аргументов выводит список всех переменных, существующих в глобальной области видимости. При передаче параметра, например str , будут перечислены только переменные этого типа:
%who strЕсли набрать данную команду, результат будет следующим.
Магия 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.
Основные команды Notebook
ArcGIS Notebooks запускает среду Jupyter notebook, которая обеспечивает простую табличную рабочую область. В разделе описываются основные команды и аспекты работы Notebooks , включая комбинации клавиш и рекомендации.
Задание размера ячейки
Существует три типа ячеек, которые могут использоваться в блокноте. Когда вы выделили ячейку, вы можете изменить ее размер, используя ниспадающий список на панели инструментов.
Доступны следующие три типа ячеек:
- Code – блокнот интерпретирует все содержание ячейки как код на языке Python. При написании кода Python, ввод некоторых строк, таких как from или знака равно ( = ), автоматически меняет их цвет или подсвечивает их для облегчения чтения. Любая строка кода, которая начинается с решетки ( # ) будет интерпретироваться как комментарий, обозначаться зеленым курсивом и не будет выполняться блокнотом как код.
- Markdown – блокнот интерпретирует все содержание ячейки как код на языке Markdown. Это простой язык для форматирования усовершенствованного текста, используемый в интернете такими клиентами, как GitHub. См. онлайн-справочник Markdown Guide с инструкциями по использованию Markdown. Запуск ячейки Markdown преобразует содержащийся в ней текст в формат RTF. Любая строка, начинающаяся с одной или нескольких решеток ( # ), будет форматироваться как заголовок. Вы также можете добавить в ячейку Markdown сырой код HTML.
- Raw NBConvert – блокнот не обрабатывает содержание ячейки Raw NBConvert. Этот тип используется редко.
Примечание:
Также в ниспадающем списке доступен тип ячейки Heading . Однако этот тип ячеек больше не используется в среде Jupyter notebook. Выбор этого типа ячейки переключает ее в тип Markdown с присоединением решетки ( # ), которая обозначает в Markdown заголовок высшего уровня.
Использование RTF и комментариев в коде сделает ваш блокнот более читаемым и удобным для других пользователей.
Работа с ячейками
Чтобы блокнот выполнил код, он должен находиться в ячейке. Код в ячейках позволяет задавать переменные и выполнять функции из библиотек Python.
Чтобы задать переменную, запустите ячейку, которая содержит выражение переменной, включая знак равно ( = ). Шаблон блокнота по умолчанию, например, запускается с заданной переменной gis . Если вы запустите ячейку, содержащую только одно имя переменной, gis , блокнот вернет URL-адрес портала ArcGIS Enterprise в качестве результата.
Примечание:
Команды iPython, использующие восклицательные знаки, такие как !cd , для изменения каталогов из командной строки, не будут работать в ArcGIS Notebooks . Вместо этого используйте команды без восклицательных знаков, такие как cd .
Примечание:
При создании блокнотов используйте полные пути к директориям и файлам в директории рабочей области.
Например, используйте /arcgis/home/test.gdb вместо home/test.gdb .
Чтобы запустить функцию Python, введите синтаксис функции и аргументы, необходимые для нее. Дополнительные сведения см. в разделе Использование функций в ячейке ниже.
Вы можете создать новую ячейку, нажав Shift+Enter или щелкнув Вставить на ленте меню, что дает возможность вставить новую ячейку выше или ниже текущей.
Опции панели инструментов ячейки
Вы можете включить дополнительную информацию об отдельных ячейках в блокнот, используя опции на панели инструментов ячейки:
- Нет – не показывать панели инструментов ячеек.
- Редактировать метаданные —Введите метаданные для каждой ячейки с помощью JSON.
- Необработанный формат ячеек – необработанные ячейки позволяют напрямую записывать результат; содержимое этих ячеек блокнотом не оценивается.
- Слайд-шоу —Определяет, как каждая ячейка будет отображаться в слайд-шоу. Это удобно при представлении кода.
- Вложения —Управляет связанными сложениями в каждой ячейке в рабочей области блокнота.
- Теги —Создавать и управлять тегами для каждой ячейки в рабочей области блокнота.
Когда какая-либо из этих опций включена, над каждой ячейкой в блокноте появляется полоска. Одновременно может быть включена только одна опция, но любая информация, которую вы добавляете на панель инструментов, остается даже при выключении. Вы можете изменить опции панели инструментов ячейки, щелкнув Вид > Панель инструментов ячеек .
Опцию Теги можно использовать, когда вы готовите блокнот для запланированного или удаленного выполнения. Это дает возможность вставки параметров в качестве новой ячейки во время выполнения, таких как данные учетной записи или переменные для определения. Вы можете указать место в блокноте, где будет добавлена эта новая ячейка, добавив тег parameters к ячейке в блокноте. Новая ячейка вставляется после этой ячейки. Операция распознает только одну ячейку с тегом parameters .
Импорт библиотек и модулей
В шаблоне блокнота по умолчанию, ArcGIS Notebooks импортирует только модуль gis из ArcGIS API for Python . Обычно вам требуются дополнительные библиотеки Python, доступные в среде Notebook. Чтобы получить доступ к этим библиотекам, запустите команду import .
Создайте новую ячейку и введите import , затем запустите ее.
В ArcGIS API for Python и ArcPy, а также в некоторых других случаях, библиотеки Python собраны в модули. Чтобы получить доступ к библиотеке в модуле, объявите модуль с помощью выражения from , затем объявите библиотеку с помощью выражения import . Например, чтобы вызвать библиотеку WebScene из модуля mapping в ArcGIS API for Python , запустите в ячейке следующую команду:
from arcgis.mapping import WebSceneArcGIS Notebooks содержит функцию автозаполнения, работающую при запуске ячеек. Вы можете использовать ее для облегчения поиска необходимых библиотек и модулей. В ячейке, введите первую часть команды, затем нажмите Tab , чтобы активировать функцию автозаполнения. Она вводит возможные значения для завершения команды.
Например, если вы ввели arcgis. и нажали Tab , в блокноте откроется ниспадающий список со всеми модулями, доступными в ArcGIS API for Python . Для перемещения по списку используйте стрелки вверх и вниз; когда вы найдете нужный вариант, нажмите Enter , чтобы вставить его в строку кода.
- Использование ArcGIS API for Python в блокноте
- Использование ArcPy в блокноте
Использование функций в ячейке
Для выполнения анализа и работы с данными в блокнотах используются функции Python. Функции находятся в библиотеках Python, они часто используют входные аргументы, чтобы определить способ выполнения и обрабатываемые данные.
Инструмент автозаполнения позволяет находить функции с помощью ниспадающего списка. В любой библиотеке bar , введите bar. и нажмите Tab , чтобы увидеть доступные функции.
Например, для просмотра инструментов, доступных в библиотеке Summarize Data модуля arcgis.features , введите следующий код и нажмите Tab :
features.summarize_data.Инструмент автозаполнения отображает ниспадающий список с доступными в библиотеке инструментами.
Часто команда блокнота имеет обязательные или дополнительные аргументы - параметры, которые предоставляют информацию для выполнения команды. Если синтаксис команды заканчивается пустым набором кавычек ( () ), команде необходимо добавить обязательные аргументы или указать дополнительные.
Введите аргументы в кавычках, разделяя их запятыми. Чтобы просмотреть строку обязательных или дополнительных аргументов для любой функции, замените пустые кавычки знаком вопроса и запустите ячейку. Откроется docstring функции со списком всех аргументов.
Например, все инструменты, доступные на панели Анализ редактора блокнота, требуют аргументов. Добавление в ячейку инструмента с этой панели приведёт к вставке его синтаксиса ArcGIS API for Python , заканчивающегося пустыми кавычками. Если вы попытаетесь запустить этот синтаксис не указав один или несколько аргументов, появится сообщение об ошибке.
Если вы хотите запустить инструмент Агрегировать точки из библиотеки Summarize Data, необходимо найти инструмент на панели Анализ и добавить его в новую ячейку, или просто ввести следующую строку:
features.summarize_data.aggregate_points()Чтобы просмотреть список аргументов этого инструмента, измените строку и запустите ячейку:
features.summarize_data.aggregate_points?Откроется окно справки docstring для данного инструмента. В нем есть кнопки для развертывания или закрытия окна, в правом верхнем углу.
- Для любой функции foo() , наберите foo? и нажмите Enter , чтобы отобразить строку документации с описанием функции.
- Если ячейка начинается с ! , ее содержание будет работать в контейнере блокнота как пакетная команда.
Запуск ячейки
При запуске ячейки выполняется ее код вместе со всеми операторами. Вы можете запустить только всю ячейку, нельзя запустить только ее часть или одну строку кода. Ячейка может содержать одну или несколько строк кода.
Чтобы запустить выбранную ячейку, щелкните кнопку Запустить на панели инструментов или щелкните Ячейки > Запустить ячейки . Также можно нажать Ctrl+Enter , чтобы запустить ячейку, в которой находится курсор мыши.
Чтобы вручную остановить работу ячейки, щелкните Ядро > Прервать . Также можно щелкнуть квадратную кнопку остановки на панели инструментов.
Слева от каждой ячейки кода находится элемент In [ ] . Если ячейка еще не запускалась, или результаты предыдущего запуска ячейки были удалены, скобки будут пусты. Если ячейка в данный момент работает, в скобках будет звездочка: In [*] . Когда работа ячейки завершена, в скобках In [ ] появляется число, означающее порядок выполнения ячеек. Поскольку ячейки в блокноте могут запускаться в любом порядке и несколько раз, число In [ ] может не соответствовать порядковому номеру.
Примечание:
Ячейки Markdown содержат элемент In [ ] до запуска, после запуска элемент исчезает, а содержание ячейки становится текстом в формате RTF.
Когда строка кода из исполняемой ячейки создает выходные данные, они отображаются в блокноте под ячейкой. Рядом с выходными данными находится элемент Out [ ] , который соответствует содержанию элемента In [ ] соответствующей ячейки.
Работа с ядром
При запуске нового блокнота загружается ядро. Это ядро исполняет код, запускаемый в блокноте. Когда вы запускаете ячейки в блокноте (заполняя из элементы In [ ] ), переменные, заданные в исполняемых ячейках, сохраняются в памяти ядра.
Чтобы перезапустить ядро блокнота и очистить переменные в памяти, щелкните Ядро > Перезапустить . Если вы хотите перезапустить ядро, очистите переменные в памяти, затем последовательно запустите все ячейки блокнота, щелкните Ядро > Перезапустить & Запустить все .
Когда вы закончили активную работу с блокнотом, щелкните Ядро > Выключить , чтобы отключить ядро и очистить переменные в памяти. Ядро останавливает работу, но выходные данные ячеек не стираются.
Когда блокнот остается неактивным в течение длительного времени, ядро автоматически отключается и очищает все переменные в памяти. По умолчанию используется период в 24 часа, но администратор сайта может сделать его длиннее или короче.
В этом разделе
- Задание размера ячейки
- Работа с ячейками
- Импорт библиотек и модулей
- Использование функций в ячейке
- Запуск ячейки
- Работа с ядром
Повышение продуктивности при работе с Jupyter Notebook за 5 минут
Для начала повторим основные горячие клавиши. Если вы их ещё не используете — начните обязательно. В долгосрочной перспективе время на изучение окупится многократно.
0. Основные горячие клавиши
- Esc: Переключение между режимом выполнения и редактирования
- A: Добавление пустой ячейки сверху
- B: Добавление пустой ячейки снизу
- DD: Удаления ячейки
- C: Копирование ячеек
- X: Вырезание ячеек
- V: Вставка ячеек
1. Перезапуск блокнота
Для рестарта просто нажмите ESC + 00.
2. Прокрутка блокнота
Нажатие Space прокрутит блокнот вниз, а Shift + Space — вверх.
3. Отмена удаления ячейки
Для быстрой отмены удаления ячейки нажмите ESC + Z
4. Разделение ячеек
Начав писать код в одной ячейке, мы постоянно сталкиваемся с необходимостью разделить его по разным ячейкам позже. Вместо ручного создания ячейки и копирования текста, поставьте курсор перед линией, с которой начнётся вторая ячейка, и нажмите Control + Shift + -
5. Вывод результатов всех операций
По умолчанию при выполнении ячейки выводится только результат последней операции.
Чтобы печаталось всё, скопируйте и выполните этот код в вашем блокноте:
from IPython.core.interactiveshell import InteractiveShell InteractiveShell.ast_node_interactivity = "all"
Минус такого подхода в том, что иногда выводиться будет чрезмерно много информации. Чтобы этого избежать, добавьте точку с запятой в конце строки, вывод которой вам не нужен.
6. Пропустить выполнение ячейки
Рано или поздно появится ячейка, выполнение которой вы захотите пропустить. Вместо того чтобы закомментировать или удалить код, просто сделайте так:
%%script false Код, который выполнять не нужно7. Переход к ячейке, которая выполняется сейчас
Выполните этот код в вашем блокноте, чтобы иметь возможность быстро перемещаться к ячейке, которая выполняется в данный момент, по нажатию Alt + I
%%javascript // Шоткат для перемещения к исполняемой Jupyter.keyboard_manager.command_shortcuts.add_shortcut('Alt-I', < help : 'Go to Running cell', help_index : 'zz', handler : function (event) < setTimeout(function() < // Find running cell and click the first one if ($('.running').length >0) < //alert("found running cell"); $('.running')[0].scrollIntoView(); >>, 250); return false; > >);



