Jupyter - Краткое руководство
Project Jupyter - это набор программных продуктов, используемых в интерактивных вычислениях. IPython был первоначально разработан Фернандо Пересом в 2001 году как усовершенствованный интерпретатор Python. Веб-интерфейс для терминала IPython в форме записной книжки IPython был представлен в 2011 году. В 2014 году Project Jupyter стартовал как дополнительный проект от IPython.
Пакеты в рамках проекта Jupyter включают в себя -
Jupyter notebook - Веб-интерфейс для программных сред Python, Julia, R и многих других.
QtConsole - Терминал на основе Qt для ядер Jupyter, аналогичный IPython
nbviewer - Возможность делиться блокнотами Jupyter
JupyterLab - Современный интегрированный веб-интерфейс для всех продуктов.
Стандартный дистрибутив Python поставляется с REPL (Read-Evaluate-Print Loop) окружение в виде оболочки Python с >>>незамедлительный. IPython (сокращение от Interactive Python) - это улучшенная интерактивная среда для Python с множеством функций по сравнению со стандартной оболочкой Python.
Особенности IPython
IPython предлагает больше функций по сравнению со стандартным Python. Они следующие -
Предлагает мощную интерактивную оболочку Python.
Выступает в качестве основного ядра для записной книжки Jupyter и других интерфейсных инструментов Project Jupyter.
Обладает способностью к самоанализу объекта. Самоанализ - это возможность проверять свойства объекта во время выполнения.
Подсветка синтаксиса.
Хранит историю взаимодействий.
Завершение ключевых слов, переменных и функций с помощью табуляции.
Система волшебных команд, полезная для управления средой Python и выполнения задач ОС.
Возможность встраивания в другие программы Python.
Предоставляет доступ к отладчику Python.
История и развитие
IPython был первоначально разработан Фернандо Пересом в 2001 году. Его текущая версия - IPython7.0.1, для которой требуется версия Python 3.4 или выше. IPython 6.0 был первой версией, поддерживающей Python 3. Пользователи, имеющие Python 2.7, должны работать с IPython версий 2.0–5.7.
Концепция вычислительных ноутбуков зародилась в десятилетие 80-х, когда были выпущены MATLAB и Mathematica. Эти интерфейсы GUI к интерактивной оболочке имели такие функции, как форматирование текста, добавление графики, таблиц и математических символов. Sage notebook - это также сетевой блокнот.
Создатели IPython начали работу над интерфейсом ноутбука для оболочки IPython в 2005 году. Вскоре в ноутбук IPython добавлена поддержка других языков, таких как R и Julia. Это было в 2014 году, когда Перес запустил проект Jupyter как дополнительный проект от IPython, поскольку проект IPython становился все более популярным, добавляя к нему такие продукты, как сервер ноутбука и консоль Qt.
Начиная с IPython 4.0, все дополнительные компоненты были перенесены в Project Jupyter и добавлена поддержка других языков в блокнот IPython. IPython продолжает фокусироваться на улучшении своей расширенной функции интерпретатора. Он также предоставляет основное ядро для внешнего интерфейса ноутбука Jupyter.
IPython по умолчанию включен в дистрибутив Python для Anaconda. Его можно загрузить со страницы загрузки Anaconda www.anaconda.com/download/. Бинарные файлы для всех основных ОС (Windows, MacOS и Linux) и архитектуры (32- и 64-разрядные версии) доступны по этой ссылке.
Чтобы установить IPython отдельно в стандартной установке Python, вы можете использовать команду pip, как показано ниже -
pip3 install ipython
IPython внутренне использует следующие пакеты:
Sr.No. | Зависимости и функциональность IPython |
---|---|
1 | colorama Кросс-платформенный API для печати цветного текста терминала из Python |
2 | jedi Инструмент автозаполнения для Python |
3 | pickleshare Небольшое хранилище данных типа «полка» с поддержкой параллелизма |
4 | prompt_toolkit Библиотека для создания мощных интерактивных командных строк на Python |
5 | pygments Пакет подсветки синтаксиса, написанный на Python |
6 | simplegeneric Простые универсальные функции |
7 | traitlets Система конфигурации для приложений Python. |
Как правило, все зависимости устанавливаются автоматически. В противном случае вы можете установить их по отдельности с помощью pip.
В этой главе объясняется, как начать работу над IPython.
Запуск IPython из командной строки.
Прежде чем приступить к более глубокому изучению IPython, обратите внимание, что вместо обычного >>>, вы заметите два основных приглашения Python, как описано ниже -
In[1] появляется перед любым входным выражением.
Out[1] появляется до появления вывода.
Кроме того, числа в квадратных скобках автоматически увеличиваются. Обратите внимание на следующий снимок экрана для лучшего понимания -
Теперь, если вы установили дистрибутив Python для Anaconda, откройте командную строку Anaconda из меню «Пуск».
Запустите IPython из командной строки conda
По сравнению с обычной консолью Python мы можем заметить разницу. Оболочка IPython показывает выделение синтаксиса с использованием разной цветовой схемы для различных элементов, таких как выражение, функция, переменная и т. Д.
Еще одно полезное улучшение - завершение табуляции. Мы знаем, что у каждого объекта есть один или несколько доступных методов, как определено в его классе. IPython отображает соответствующий список методов, когда вы нажимаете клавишу табуляции после точки перед объектом.
В следующем примере определяется строка. В ответ показаны методы строкового класса.
IPython предоставляет информацию о любом объекте, помещая '?' перед ним. Он включает в себя строку документации, определения функций и сведения о конструкторе класса. Например, чтобы исследовать указанный выше строковый объект var, в строке ввода введитеvar?. Результат покажет всю информацию о нем. Обратите внимание на снимок экрана, приведенный ниже, для лучшего понимания -
Магические функции
Встроенные магические функции IPython чрезвычайно мощны. Есть два типа магических функций.
- Line magics, которые работают очень похоже на команды DOS.
- Cell magics, которые работают с несколькими строками кода.
Мы узнаем о функциях линейной магии и магических функциях ячейки подробно в следующих главах.
В этой главе давайте поймем, как запускать и редактировать скрипт Python.
Команда Run
Вы можете использовать runв строке ввода, чтобы запустить скрипт Python. Команда запуска на самом деле является линейной магической командой и должна быть записана как%run. Тем не менее%automagic По умолчанию режим всегда включен, поэтому вы можете не указывать его.
In [1]: run hello.py
Hello IPython
Редактировать команду
IPython также предоставляет волшебную команду редактирования. Он вызывает редактор операционной системы по умолчанию. Вы можете открыть его через редактор Windows Notepad и отредактировать сценарий. После того, как вы закроете его после сохранения его ввода, будет отображен вывод измененного скрипта.
In [2]: edit hello.py
Editing... done. Executing edited code...
Hello IPython
welcome to interactive computing
Обратите внимание, что hello.py изначально содержал только один оператор, а после редактирования был добавлен еще один оператор. Если для команды редактирования не указано имя файла, создается временный файл. Обратите внимание на следующий код, который показывает то же самое.
In [7]: edit
IPython will make a temporary file named:
C:\Users\acer\AppData\Local\Temp\ipython_edit_4aa4vx8f\ipython_edit_t7i6s_er.py
Editing... done. Executing edited code...
magic of IPython
Out[7]: 'print ("magic of IPython")'
IPython сохраняет как команды, так и их результаты текущего сеанса. Мы можем прокручивать предыдущие команды, нажимая клавиши вверх и вниз.
Кроме того, последние три объекта вывода хранятся в специальных переменных _, __ и ___. Вhistory magic command показывает предыдущие команды в текущем сеансе, как показано на скриншоте ниже -
Если оператор во входной ячейке начинается с восклицательного знака (!), Он рассматривается как системная команда для базовой операционной системы. Например,!ls (для linux) и !dir (для windows) отображает содержимое текущего каталога
Вывод системной команды также может быть назначен переменной Python, как показано ниже -
Переменная сохраняет вывод без цвета и разделяет символы новой строки.
Также возможно комбинировать переменные или выражения Python с вызовами системных команд. Переменная в фигурных скобках {} может быть встроена в текст команды. Обратите внимание на следующий пример -
Вот еще один пример, чтобы понять, что префикс переменной Python с помощью $ также дает тот же результат.
В этой главе давайте поймем, как работать с различными параметрами командной строки в IPython.
Вызов программы IPython
Вы можете вызвать программу IPython, используя следующие параметры:
C:\python36> ipython [subcommand] [options] [-c cmd | -m mod | file] [--] [arg]
Вариант файла - это сценарий Python с расширением .py. Если другой вариант не указан, сценарий выполняется, и командная строка появляется снова.
C:\python36>ipython hello.py
Hello IPython
welcome to interactive computing
Подкоманды и параметры
Команда IPython принимает следующие параметры подкоманды -
Profile - Создание профилей IPython и управление ими.
Kernel - Запустить ядро без подключенного внешнего интерфейса.
Locate - Распечатать путь к каталогу IPython.
History - Управление базой данных истории IPython.
Подкоманда профиля IPython принимает следующие параметры:
ipython profile create myprofile - Создает новый профиль.
ipython profile list - Список всех доступных профилей.
ipython locate profile myprofile - Находит необходимый профиль.
Чтобы установить новое ядро IPython, используйте следующую команду -
Ipython kernel –install –name
Чтобы распечатать путь к каталогу IPython, используйте следующую команду -
C:\python36>ipython locate myprofile
C:\Users\acer\.ipython
Кроме того, мы знаем, что -
В history подкоманда управляет базой данных истории IPython.
В trim опция сокращает базу данных истории IPython до последних 1000 записей.
В clear опция удаляет все записи.
Некоторые из других важных параметров командной строки IPython перечислены ниже -
Sr.No. | Команда и описание IPython |
---|---|
1 | --automagic Включите автоматический вызов магических команд. |
2 | --pdb Включите автоматический вызов отладчика pdb после каждого исключения. |
3 | --pylab Предварительно загрузите matplotlib и numpy для интерактивного использования с бэкэндом matplotlib по умолчанию. |
4 | --matplotlib Настройте matplotlib для интерактивного использования с бэкэндом matplotlib по умолчанию. |
5 | --gui=options Включите интеграцию цикла событий GUI с любым из ('glut', 'gtk', 'gtk2', 'gtk3', 'osx', 'pyglet', 'qt', 'qt4', 'qt5', 'tk', ' wx ',' gtk2 ',' qt4 '). |
Пример использования некоторых параметров командной строки IPython показан в следующей таблице:
Sr.No. | Команда и описание IPython |
---|---|
1 | ipython --matplotlib включить интеграцию с matplotlib |
2 | ipython --matplotlib=qt включить интеграцию matplotlib с бэкэндом qt4 |
3 | ipython --profile=myprofile начать с профиля foo |
4 | ipython profile create myprofile создать профиль foo с файлами конфигурации по умолчанию |
5 | ipython help profile показать справку для subcmd профиля |
6 | ipython locate распечатать путь к каталогу IPython |
7 | ipython locate profile myprofile распечатать путь к каталогу для профиля `myprofile` |
IPython имеет разные способы динамического получения информации об объектах Python. В этой главе давайте изучим способы интроспекции динамических объектов в IPython.
Использование ? и ??предоставляет конкретную и более подробную информацию об объекте. В первом примере, обсуждаемом ниже, создается простой целочисленный объект a. Его информацию можно получить, набрав? во входной ячейке.
Во втором примере давайте определим функцию и проанализируем этот объект функции с помощью ? и ??.
Обратите внимание, что волшебная функция %psearch эквивалентно использованию ? или же ?? для получения информации об объекте.
Ячейки ввода и вывода на консоли IPython нумеруются постепенно. В этой главе давайте подробно рассмотрим кеширование ввода-вывода в Python.
В IPython входные данные извлекаются с помощью клавиши со стрелкой вверх. Кроме того, все предыдущие данные сохраняются и могут быть восстановлены. Переменные_i, __i, и ___iвсегда сохранять три предыдущие входные записи. К тому же,In и _inпеременные предоставляют списки всех входов. Очевидно_in[n]получает данные из n-й ячейки ввода. Следующий сеанс IPython поможет вам понять это явление -
In [1]: print ("Hello")
Hello
In [2]: 2+2
Out[2]: 4
In [3]: x = 10
In [4]: y = 2
In [5]: pow(x,y)
Out[5]: 100
In [6]: _iii, _ii, _i
Out[6]: ('x = 10', 'y = 2', 'pow(x,y)')
In [7]: In
Out[7]:
['',
'print ("Hello")',
'2+2',
'x = 10',
'y = 2',
'pow(x,y)',
'_iii, _ii, _i',
'In'
]
In [8]: In[5] 9. IPython — IO
Out[8]: 'pow(x,y)'
In [9]: _ih
Out[9]:
['',
'print ("Hello")',
'2+2',
'x = 10',
'y = 2',
'pow(x,y)',
'_iii, _ii, _i',
'In',
'In[5]',
'_ih'
]
In [11]: _ih[4]
Out[11]: 'y = 2'
In [12]: In[1:4]
Out[12]: ['print ("Hello")', '2+2', 'x=10']
Точно так же одинарное, двойное и тройное подчеркивание действуют как переменные для хранения трех предыдущих выходных данных. ТакжеOut и _ohсформировать объект словаря номера ячейки и вывода ячеек, выполняющих действие (не включая операторы присваивания). Чтобы получить содержимое определенной выходной ячейки, используйтеOut[n] или же _oh[n]. Вы также можете использовать нарезку, чтобы получить выходные ячейки в пределах диапазона.
In [1]: print ("Hello")
Hello
In [2]: 2+2
Out[2]: 4
In [3]: x = 10
In [4]: y = 3
In [5]: pow(x,y)
Out[5]: 1000
In [6]: ___, __, _
Out[6]: ('', 4, 1000)
In [7]: Out
Out[7]: {2: 4, 5: 1000, 6: ('', 4, 1000)}
In [8]: _oh
Out[8]: {2: 4, 5: 1000, 6: ('', 4, 1000)}
In [9]: _5
Out[9]: 1000
In [10]: Out[6]
Out[10]: ('', 4, 1000)
Различные переменные среды влияют на поведение Python. Переменная среды PYTHONSTARTUP назначается скрипту Python. В результате этот сценарий запускается до появления подсказки Python. Это полезно, если определенные модули должны загружаться по умолчанию каждый раз при запуске нового сеанса Python.
Следующий скрипт (start.py) импортирует модуль IPython и выполняет функцию start_ipython () для замены оболочки Python по умолчанию на приглашение (>>>) оболочкой IPython при вызове исполняемого файла Python.
import os, IPython
os.environ['PYTHONSTARTUP'] = ''
IPython.start_ipython()
raise SystemExit
Предполагая, что этот файл хранится в каталоге установки Python (c: \ python36), установите переменную среды PYTHONSTARTUP и запустите Python из командной строки. Затем появится оболочка IPython, как показано ниже -
Обратите внимание, что переменную среды можно установить навсегда с помощью диалогового окна «Свойства системы» в Windows и с помощью команды экспорта в Linux.
IPython может читать из стандартной консоли Python по умолчанию >>>приглашение и еще один сеанс IPython. На следующем снимке экрана показан цикл for, написанный в стандартной оболочке Python.
Скопируйте код (вместе с приглашением Python) и вставьте его во входную ячейку IPython. IPython интеллектуально отфильтровывает запросы ввода (>>> и ...) или запросы IPython (In [N]: и ... :)
Точно так же код из одного сеанса IPython можно вставить в другой. На первом снимке экрана, приведенном ниже, показано определение функции SayHello () в одном окне IPython -
Теперь давайте выберем код, вставим его в другую оболочку IPython и вызовем функцию SayHello ().
Функция embed () модуля IPython позволяет встроить IPython в пространство имен ваших кодов Python. Таким образом, вы можете использовать функции IPython, такие как интроспекция объекта и завершение табуляции, в среде Python по умолчанию.
Объекты Python, присутствующие в глобальном пространстве имен до встраивания, будут доступны для IPython.
Если новые объекты сформированы в IPython или предыдущие объекты изменены, они будут автоматически доступны в среде по умолчанию после выхода из IPython. Встроенная оболочка IPython не меняет состояние более раннего кода или объектов.
Однако, если IPython встроен в локальное пространство имен, например, внутри функции, объекты внутри него не будут доступны после его закрытия. Здесь мы определили функцию add (). Внутри add () мы вызываем IPython и объявляем переменную. Если мы попытаемся получить доступ к переменной в IPython после ее закрытия, возникнет исключение NameError.
Магические команды или магические функции - одно из важных улучшений, которые IPython предлагает по сравнению со стандартной оболочкой Python. Эти волшебные команды предназначены для решения распространенных проблем анализа данных с помощью Python. Фактически, они контролируют поведение самого IPython.
Магические команды действуют как удобные функции там, где синтаксис Python не самый естественный. Они полезны для внедрения недопустимого синтаксиса Python в свой рабочий процесс.
Типы магических команд
Есть два типа магических команд -
- Линия магии
- Клеточная магия
Line Magics
Они похожи на вызовы из командной строки. Они начинаются с символа%. Остальная часть строки - это ее аргумент, переданный без скобок и кавычек. Магия линий может использоваться как выражение, а их возвращаемое значение может быть присвоено переменной.
Cell Magics
У них есть префикс символа %%. В отличие от функций линейной магии, они могут работать на нескольких строках ниже своего вызова. Фактически они могут вносить произвольные изменения в получаемые входные данные, которые даже не обязательно должны быть действительным кодом Python. Они получают весь блок как одну строку.
Чтобы узнать больше о магических функциях, встроенных волшебствах и их строках документации, используйте волшебную команду. Информация о конкретной магической функции получается%magicfunction?Команда. Давайте теперь опишем некоторые из встроенных магических команд линий и ячеек.
Встроенная линейная магия
%autocall [mode]
Эта волшебная функция делает функцию вызываемой автоматически без использования скобок. Требуется три возможных параметра режима:0 (off), 1 (smart) is default или же 2 (always on).
% автомагия
Магические функции вызываются без ввода начального%, если установлено значение 1. Без аргументов они переключаются вкл / выкл. Для деактивации установите 0.
В следующем примере показана волшебная функция %pwd (отображает текущий рабочий каталог) вызывается без начала%, когда% automagic установлен в 1
%CD
Эта строчная магия изменяет текущий каталог. Эта команда автоматически поддерживает внутренний список каталогов, которые вы посещаете во время сеанса IPython, в переменной _dh. Вы также можете использовать 'cd - <tab>' для удобного просмотра истории каталогов.
Применение
Команду% cd можно использовать следующими способами:
%cd <dir> - Изменяет текущий рабочий каталог на <dir>
%cd.. - Изменяет текущий каталог на родительский
%cd - переход к последнему посещенному каталогу.
% dhist
Эта волшебная команда печатает все каталоги, которые вы посетили в текущем сеансе. Каждый раз, когда используется команда% cd, этот список обновляется в_dh переменная.
%редактировать
Эта волшебная команда вызывает текстовый редактор по умолчанию в текущей операционной системе (Блокнот для Windows) для редактирования скрипта Python. Скрипт выполняется при закрытии редактора.
% env
Эта волшебная команда перечислит все переменные среды. Он также считывает значение конкретной переменной или устанавливает значение переменной среды.
Usage
Команду% cd можно использовать следующими способами:
%env - Список всех переменных среды
%env var - Получает значение для var
%env var val - Устанавливает значение для var
% gui [GUINAME]
При использовании без аргументов эта команда включает или отключает интеграцию цикла событий графического интерфейса пользователя IPython. С аргументом GUINAME эта магия заменяет стандартные инструменты графического интерфейса пользователя указанными.
Sr.No. | Команда и описание |
---|---|
1 | %gui wx включить интеграцию цикла событий wxPython |
2 | %gui qt4|qt включить интеграцию цикла событий PyQt4 |
3 | %gui qt5 включить интеграцию цикла событий PyQt5 |
4 | %gui gtk включить интеграцию цикла событий PyGTK |
5 | %gui gtk3 включить интеграцию цикла событий Gtk3 |
6 | %gui tk включить интеграцию цикла событий Tk |
7 | %gui osx включить интеграцию цикла событий какао |
8 | (требуется% matplotlib 1.1) |
9 | %gui отключить всю интеграцию цикла событий |
% lsmagic
Отображает все доступные на данный момент магические функции
% matplotlib
Эта функция активирует интерактивную поддержку matplotlib во время сеанса IPython. Однако он не импортирует библиотеку matplotlib. Инструментарий графического интерфейса пользователя matplotlib по умолчанию - TkAgg. Но вы можете явно запросить другой серверный интерфейс GUI. Вы можете увидеть список доступных бэкэндов, как показано -
In [4]: %matplotlib --list
Available matplotlib backends:
['osx', 'qt4', 'qt5', 'gtk3', 'notebook', 'wx', 'qt', 'nbagg','gtk', 'tk', 'inline']
Показанный здесь сеанс IPython строит синусоидальную волну с использованием qt инструментарий -
При использовании записной книжки Jupyter встроенная директива% matplotlib отображает вывод графика только в браузере.
%блокнот
Эта функция преобразует текущую историю IPython в файл записной книжки IPython с расширением ipynb. Входные ячейки в предыдущем примере сохраняются как sine.ipynb
%notebook sine.ipynb
% pinfo
Эта функция похожа на самоанализ объекта? персонаж. Чтобы получить информацию об объекте, используйте следующую команду -
%pinfo object
Это синоним object? или же ?object.
% точности
Эта волшебная функция ограничивает результат с плавающей запятой указанными цифрами после запятой.
% pwd
Эта волшебная функция возвращает текущий рабочий каталог.
% pylab
Эта функция заполняет текущий сеанс IPython библиотеками matplotlib и numpy.
%отзыв
При выполнении без каких-либо параметров эта функция выполняет предыдущую команду.
Обратите внимание, что в %recall n, число перед ним - номер ячейки ввода. Следовательно, вызывается команда в n-й ячейке. Вы можете вызывать команды в разделе ячеек, используя такую команду, как%recall 1-4. Текущая ячейка ввода заполняется вызванной ячейкой, и курсор мигает, пока не будет нажата клавиша ввода.
%бежать
Эта команда запускает скрипт Python из оболочки IPython.
%время
Эта команда отображает время, необходимое среде IPython для выполнения выражения Python.
% timeit
Эта функция также отображает время, необходимое среде IPython для выполнения выражения Python. Для выполнения оператора или выражения Python по времени используется модуль timeit. Эта функция может использоваться как магия линии и ячейки, как описано здесь -
В line mode вы можете рассчитать время в одну строку.
В cell mode, инструкция в первой строке используется в качестве кода настройки, а тело ячейки синхронизируется. Тело ячейки имеет доступ к любым переменным, созданным в установочном коде.
%ВОЗ
Эта магическая строка печатает все интерактивные переменные с минимальным форматированием. Если указаны какие-либо аргументы, печатаются только переменные, тип которых соответствует одному из них.
Функция IPython Custom Line Magic
Основная библиотека IPython содержит декоратор register_line_magic. Пользовательская функция преобразуется в линейную магическую функцию с помощью этого декоратора.
Проект Jupyter стартовал как побочный продукт проекта IPython в 2014 году. Независимые от языка функции IPython были перенесены под названием Jupyter. Название является ссылкой на основные языки программирования, поддерживаемые Jupyter, а именно Julia, Python и продукты RP в рамках проекта Jupyter, предназначенные для поддержки интерактивного анализа данных и научных вычислений.
Проект Jupyter состоит из различных продуктов, описанных как:
IPykernel - Это пакет, который предоставляет ядро IPython для Jupyter.
Jupyter client- Этот пакет содержит эталонную реализацию протокола Jupyter. Это также клиентская библиотека для запуска, управления и взаимодействия с ядрами Jupyter.
Jupyter notebook- Ранее он был известен как ноутбук IPython. Это веб-интерфейс для ядра IPython и ядер многих других языков программирования.
Jupyter kernels - Ядро - это среда выполнения языка программирования для продуктов Jupyter.
Список ядер Jupyter приведен ниже -
Ядро | Язык | URL |
---|---|---|
IJulia | Юля | https://github.com/JuliaLang |
IHaskell | Haskell | https://github.com/gibiansky |
IRuby | Рубин | https://github.com/SciRuby/iruby |
IJavaScript | JavaScript | https://github.com/n-riesco |
IPHP | PHP | https://github.com/dawehner |
IRKernel | р | http://irkernel.github.io/ |
Qtconsole - Богатая консоль на базе Qt для работы с ядрами Jupyter
nbconvert - Конвертирует файлы записных книжек Jupyter в другие форматы.
JupyterLab - Интегрированный веб-интерфейс для ноутбуков, редакторов, консолей и т. Д.
nbviewer - HTML-просмотрщик файлов записных книжек
Ноутбук IPython был разработан Фернандо Пересом как веб-интерфейс для ядра IPython. В целях создания интегрированной интерактивной вычислительной среды для нескольких языков проект Notebook был переведен в Project Jupyter, обеспечивающий интерфейс для сред программирования Juila и R в дополнение к Python.
Документ записной книжки состоит из элементов форматированного текста с текстом в формате HTML, цифрами, математическими уравнениями и т. Д. Записная книжка также является исполняемым документом, состоящим из блоков кода на Python или других поддерживающих языках.
Блокнот Jupyter - это клиент-серверное приложение. Приложение запускает сервер на локальном компьютере и открывает интерфейс записной книжки в веб-браузере, где его можно редактировать и запускать. Записная книжка сохраняется в виде файла ipynb и может быть экспортирована как файлы html, pdf и LaTex.
Если вы новичок в Jupyter, вы можете попробовать функции ноутбука Jupyter перед установкой на локальный компьютер. Для этого посетитеhttps://jupyter.org в вашем браузере и выберите ‘Try Jupyter with Python’ вариант.
Откроется домашняя страница https://mybinder.orgВ меню «Файл» выберите вариант «Новая записная книжка», чтобы открыть в браузере пустой Jupyter. Будет отображена ячейка ввода, аналогичная ячейке в терминале IPython. Вы можете выполнить в нем любое выражение Python.
Вы можете легко установить приложение для ноутбука Jupyter с помощью диспетчера пакетов pip.
pip3 install jupyter
Чтобы запустить приложение, используйте следующую команду в окне командной строки.
c:\python36>jupyter notebook
Серверное приложение запускается с номером порта по умолчанию 8888, и открывается окно браузера, в котором отображается панель управления записной книжкой.
Обратите внимание, что на панели инструментов рядом с правой границей браузера отображается раскрывающийся список со стрелкой рядом с кнопкой «Создать». Он содержит доступные в настоящее время ядра для ноутбуков. Теперь выберите Python 3, тогда в новой вкладке откроется новый блокнот. Отображается ячейка ввода, аналогичная ячейке в консоли IPython.
Вы можете выполнить в нем любое выражение Python. Результат будет отображен в ячейке Out.
Панель управления Jupyter Notebook содержит три вкладки, как показано на скриншоте ниже -
Вкладка "Файлы"
На вкладке «Файлы» отображаются файлы и папки в текущем каталоге, из которого было запущено приложение «Блокнот». Строка, соответствующая записной книжке, которая в данный момент открыта, и текущее состояние отображается рядом с последним измененным столбцом. Он также отображает кнопку «Загрузить», с помощью которой файл можно загрузить на сервер ноутбука.
Вкладка "Бег"
Вкладка «Выполняется» показывает, какие из ноутбуков работают в данный момент.
Вкладка кластера
Третья вкладка, «Кластеры», предоставляется параллельным IPython. Платформа параллельных вычислений IPython, расширенная версия ядра IPython.
В раскрывающемся списке «Новый» выберите «Терминал», чтобы открыть окно cmd. Теперь вы можете запустить терминал IPython здесь.
In the user interface of Jupyter, just beside the logo in the header, the file name is displayed.
You can find the menu bar below the header. Each menu contains many options that will be discussed later.
A row of icons forming toolbar helps user to perform often required operations
The notebook has two modes − Command mode and Edit mode. Notebook enters edit mode when a cell is clicked. Notice the pencil symbol just besides name of kernel.
Kernel indicator symbol is displayed just to the right of kernel name. Note that a hollow circle means kernel is idle and solid circle means it is busy.
File Menu
The following are the options available in the File menu −
Sr.No. | File menu & Description |
---|---|
1 | New notebook choose the kernel to start new notebook |
2 | Open Takes user to dashboard to choose notebook to open |
3 | Save as save current notebook and start new kernel |
4 | Rename rename current notebook |
5 | Save saves current notebook and stores current checkpoint |
6 | Revert reverts state of notebook to earlier checkpoint |
7 | Download export notebook in one of various file formats |
The file formats that are available are shown below −
Edit Menu
Edit menu consists of buttons to perform cut, copy and paste cells, delete selected cell, split and merge cells, move cells up and down, find and replace within notebook, cut/copy attachments and insert image.
View Menu
Buttons in this menu help us to hide/display header, toolbar and cell numbers.
Insert Menu
This menu gives you options for inserting cell before or after the current cell.
Cell Menu
The options in this menu let user run all or specific cells in the notebook. You can also set the cell type to code type, markdown or raw nbconvert type.
Kernel Menu
From this menu you can start, interrupt, restart or shutdown the kernel. You can also start a new kernel.
Widgets Menu
From this menu you can save, clear, download or embed widget state.
Help menu
Various predefined keyboard shortcuts are displayed from this menu. You can also edit the shortcuts as per your convenience.
Cells in Jupyter notebook are of three types − Code, Markdown and Raw.
Code Cells
Contents in this cell are treated as statements in a programming language of current kernel. Default kernel is Python. So, we can write Python statements in a code cell. When such cell is run, its result is displayed in an output cell. The output may be text, image, matplotlib plots or HTML tables. Code cells have rich text capability.
Markdown Cells
These cells contain text formatted using markdown language. All kinds of formatting features are available like making text bold and italic, displaying ordered or unordered list, rendering tabular contents etc. Markdown cells are especially useful to provide documentation to the computational process of the notebook.
Raw Cells
Contents in raw cells are not evaluated by notebook kernel. When passed through nbconvert, they will be rendered as desired. If you type LatEx in a raw cell, rendering will happen after nbconvert is applied.
While the menu bar and toolbar lets you perform various operations on notebook, it is desirable to be able to use keyboard shortcuts to perform them quickly.
Jupyter Notebooks have two different keyboard input modes −
Command Mode − Binds the keyboard to notebook level actions. Indicated by a grey cell border with a blue left margin.
Edit Mode − When you are typing in a cell. Indicated by a green cell border.
Command Mode (press Esc to enable)
F |
find and replace | 1 |
change cell to heading 1 |
Ctrl-Shift-F |
open the command palette | 2 |
change cell to heading 2 |
Ctrl-Shift-P |
open the command palette | 3 |
change cell to heading 3 |
Enter |
enter edit mode | 4 |
change cell to heading 4 |
P |
open the command palette | 5 |
change cell to heading 5 |
Shift-Enter |
run cell, select below | 6 |
change cell to heading 6 |
Ctrl-Enter |
run selected cells | A |
insert cell above |
Alt-Enter |
run cell and insert below | B |
insert cell below |
Y |
change cell to code | X |
cut selected cells |
M |
change cell to markdown | C |
copy selected cells |
R |
change cell to raw | V |
paste cells below |
K |
select cell above | Z |
undo cell deletion |
Up |
select cell above | D,D |
delete selected cells |
Down |
select cell below | Shift-M |
merge selected cells, or current cell with cell below if only one cell is selected |
J |
select cell below | Shift-V |
paste cells above |
Shift-K |
extend selected cells above | L |
toggle line numbers |
Shift-Up |
extend selected cells above | O |
toggle output of selected cells |
Shift-Down |
extend selected cells below | Shift-O |
toggle output scrolling of selected cells |
Shift-J |
extend selected cells below | I,I |
interrupt the kernel |
Ctrl-S |
Save and Checkpoint | 0,0 |
restart the kernel (with dialog) |
S |
Save and Checkpoint | Esc |
close the pager |
Shift-L |
toggles line numbers in all cells, and persist the setting | Q |
close the pager |
Shift-Space |
scroll notebook up | Space |
scroll notebook down |
Edit Mode (press Enter to enable)
Tab |
code completion or indent | Ctrl-Home |
go to cell start |
Shift-Tab |
tooltip | Ctrl-Up |
go to cell start |
Ctrl-] |
indent | Ctrl-End |
go to cell end |
Ctrl-[ |
dedent | Ctrl-Down |
go to cell end |
Ctrl-A |
select all | Ctrl-Left |
go one word left |
Ctrl-Z |
undo | Ctrl-Right |
go one word right |
Ctrl-/ |
comment | Ctrl-M |
enter command mode |
Ctrl-D |
delete whole line | Ctrl-Shift-F |
open the command palette |
Ctrl-U |
undo selection | Ctrl-Shift-P |
open the command palette |
Insert |
toggle overwrite flag | Esc |
enter command mode |
Ctrl-Backspace |
delete word before | Ctrl-Y |
redo |
Ctrl-Delete |
delete word after | Alt-U |
redo selection |
Shift-Enter |
run cell, select below | Ctrl-Shift-Minus |
split cell at cursor |
Ctrl-Enter |
run selected cells | Down |
move cursor down |
Alt-Enter |
run cell and insert below | Up |
move cursor up |
Ctrl-S |
Save and Checkpoint |
Markdown cell displays text which can be formatted using markdown language. In order to enter a text which should not be treated as code by Notebook server, it must be first converted as markdown cell either from cell menu or by using keyboard shortcut M while in command mode. The In[] prompt before cell disappears.
Header cell
A markdown cell can display header text of 6 sizes, similar to HTML headers. Start the text in markdown cell by # symbol. Use as many # symbols corresponding to level of header you want. It means single # will render biggest header line, and six # symbols renders header of smallest font size. The rendering will take place when you run the cell either from cell menu or run button of toolbar.
Following screenshot shows markdown cells in edit mode with headers of three different levels.
When cells are run, the output is as follows −
Note that Jupyter notebook markdown doesn’t support WYSWYG feature. The effect of formatting will be rendered only after the markdown cell is run.
Ordered Lists
To render a numbered list as is done by <ol> tag of HTML, the First item in the list should be numbered as 1. Subsequent items may be given any number. It will be rendered serially when the markdown cell is run. To show an indented list, press tab key and start first item in each sublist with 1.
If you give the following data for markdown −
It will display the following list −
Bullet lists
Each item in the list will display a solid circle if it starts with – symbol where as solid square symbol will be displayed if list starts with * symbol. The following example explains this feature −
The rendered markdown shows up as below −
Hyperlinks
Markdown text starting with http or https automatically renders hyperlink. To attach link to text, place text in square brackets [] and link in parentheses () optionally including hovering text. Following screenshot will explain this.
The rendered markdown appears as shown below −
Bold and Italics
To show a text in bold face, put it in between double underscores or two asterisks. To show in italics, put it between single underscores or single asterisks.
The result is as shown below −
Images
To display image in a markdown cell, choose ‘Insert image’ option from Edit menu and browse to desired image file. The markdown cell shows its syntax as follows −
Image will be rendered on the notebook as shown below −
Table
In a markdown cell, a table can be constructed using | (pipe symbol) and – (dash) to mark columns and rows. Note that the symbols need not be exactly aligned while typing. It should only take respective place of column borders and row border. Notebook will automatically resize according to content. A table is constructed as shown below −
The output table will be rendered as shown below −
In this chapter, let us understand cell magic functions and their functionalities.
%%html
This cell magic function renders contents of code cell as html script.
%%js or %%javascript
You can embed javascript code in Jupyter notebook cell with the help of this cell magic command.
%%writefile
Contents of code cell are written to a file using this command.
IPython kernel of Jupyter notebook is able to display plots of code in input cells. It works seamlessly with matplotlib library. The inline option with the %matplotlib magic function renders the plot out cell even if show() function of plot object is not called. The show() function causes the figure to be displayed below in[] cell without out[] with number.
Now, add plt.show() at the end and run the cell again to see the difference.
Note that the %matplotlib notebook magic renders interactive plot.
Just below the figure, you can find a tool bar to switch views, pan, zoom and download options.
Importantly, if you modify the data underneath the plot, the display changes dynamically without drawing another plot.
In the above example, change the data sets of x and y in the cell below and plot the figure again, the figure above will get dynamically refreshed.
Jupyter notebook files have .ipynb extension. Notebook is rendered in web browser by the notebook app. It can be exported to various file formats by using download as an option in the file menu. Jupyter also has a command line interface in the form of nbconvert option. By default, nbconvert exports the notebook to HTML format. You can use the following command for tis purpose −
jupyter nbconvert mynotebook.ipynb
This will convert mynotebook.ipynb to the mynotebook.html. Other export format is specified with `--to` clause.
Note that other options include ['asciidoc', 'custom', 'html', 'latex', 'markdown', 'notebook', 'pdf', 'python', 'rst', 'script', 'slides']
HTML includes 'basic' and 'full' templates. You can specify that in the command line as shown below −
jupyter nbconvert --to html --template basic mynotebook.ipynb
LaTex is a document preparation format used specially in scientific typesetting. Jupyter includes 'base', 'article' and 'report' templates.
jupyter nbconvert --to latex –template report mynotebook.ipynb
To generate PDF via latex, use the following command −
jupyter nbconvert mynotebook.ipynb --to pdf
Notebook can be exported to HTML slideshow. The conversion uses Reveal.js in the background. To serve the slides by an HTTP server, add --postserve on the command-line. To make slides that does not require an internet connection, just place the Reveal.js library in the same directory where your_talk.slides.html is located.
jupyter nbconvert myslides.ipynb --to slides --post serve
The markdown option converts notebook to simple markdown output. Markdown cells are unaffected, and code cells indented 4 spaces.
--to markdown
You can use rst option to convert notebook to Basic reStructuredText output. It is useful as a starting point for embedding notebooks in Sphinx docs.
--to rst
This is the simplest way to get a Python (or other language, depending on the kernel) script out of a notebook.
--to script
IPyWidgets is a Python library of HTML interactive widgets for Jupyter notebook. Each UI element in the library can respond to events and invokes specified event handler functions. They enhance the interactive feature of Jupyter notebook application.
In order to incorporate widgets in the notebook, we have to import the following module as shown below −
from ipywidgets import widgets
Some basic IPyWidgets are explained here −
Text input
The widgets.text() function renders widgets in the notebook. It is similar to text box form element in HTML. The object of this widget has on_submit() method which listens to activity of the text field and can invoke event handler given as an argument to it.
Button
This widget is similar to HTML button. When it is clicked, the event is registered by on_click() method which calls the click event handler.
IntSlider
A slider control which displays the incrementing integer values. There is also a FloatSlider and IntRangeSlider (changing integer between a range)
Label
This widget is useful to display non editable text in the notebook.
display()
This function from ipywidgets module renders the widget object in notebook’s input cell.
Interact
This function automatically renders a widget depending upon type of data argument given to it. First argument to this function is the event handler and second is a value passed to event handler itself.
Following example shows three label widgets, two text widgets and a button with ‘add’ caption. When the button is clicked, sum of numbers in two text input fields is displayed on the lowermost label.
In this chapter, let us understand how to get started with QtConsole. This chapter will give you an overview about this software and explains its installation steps.
Overview
The Qt console is a GUI application similar to IPython terminal. However, it provides a number of enhancements which are not available in text based IPython terminal. The enhance features are inline figures, multi-line editing with syntax highlighting, graphical calltips, etc. The Qt console can use any Jupyter kernel, default being IPython kernel.
Установка
Jupyter QtConsole является частью Project Jupyter. В дистрибутиве Anaconda уже есть приложение QTconsole. Чтобы установить его индивидуально, используйте команду pip, как показано ниже -
pip3 install qtconsole
Вы также можете использовать команду conda для этой цели -
conda install qtconsole
Вы можете запустить консоль Jupyter из навигатора Anaconda. Чтобы запустить его из командной строки, вы должны использовать следующую команду либо из командной строки Windows, либо из строки Anaconda:
jupyter qtonsole
Вы получаете терминал, похожий на терминал IPython, с первым приглашением In []. Теперь вы можете выполнять любое выражение Python точно так же, как мы это делаем в терминале IPython или записной книжке Jupyter
Многострочное редактирование - одна из функций, недоступных в терминале IPython. Чтобы ввести более одного оператора в одну ячейку ввода, нажмитеctrl+enterпосле первой строки. Впоследствии, просто нажав Enter, вы добавите новую строку в ту же ячейку. Чтобы прекратить ввод новых строк и бегущей ячейки, нажмите клавишу ввода еще раз в конце. Ячейка запустится, и результат будет отображаться в следующей ячейке out [].
Еще одно важное улучшение, предлагаемое QtConsole, - это возможность отображать встроенную графику, особенно графики. Эта функция хорошо работает с Matplotlib, а также с другими библиотеками для построения графиков.
Эта опция сохранения вывода QtConsole в виде файла HTML доступна в меню Файл. Вы можете создать файл со встроенным изображением или построенную фигуру как внешний файл png в соседней папке (названной qt_files).
В консольном приложении Jupyter можно открыть более одной вкладки. Для этого предусмотрены три опции в меню «Файл».
New Tab with New kernel - Вы можете загрузить новое ядро с помощью этого меню файла.
New Tab with Existing kernel - Используя эту опцию, вы можете выбирать из дополнительных ядер помимо ядра IPython.
New Tab with Same Kernel- Это создает подчиненное устройство ядра, загруженное на определенной вкладке. В результате объект, инициализированный на главной вкладке, будет доступен в подчиненном устройстве и наоборот.
Для использования с записной книжкой Jupyter доступна волшебная команда% qtconsole. Это вызывает QtConsole как подчиненный терминал для внешнего интерфейса ноутбука. В результате данные между ноутбуком и терминалом Qtconsole могут совместно использоваться.
Вы можете видеть, что переменная в записной книжке доступна в qtconsoleокно. Кроме того, в блокноте используется новая переменная в Qtconsole.
Обратите внимание, что ячейки ввода и вывода пронумерованы постепенно между ними.
Sharing Jupyter notebook – Using github and nbviewer
Файлы Jupyter Notebook с .ipynbрасширение в репозитории GitHub будет отображаться как статические файлы HTML при открытии. Интерактивные функции записной книжки, такие как пользовательские графики JavaScript, не будут работать в вашем репозитории на GitHub.
Чтобы поделиться файлом записной книжки с помощью github, войдите в https://github.comи создайте публичный репозиторий. Затем загрузите свои файлы с помощью кнопки загрузки файла, как показано ниже -
Это даст вам возможность зафиксировать изменения, внесенные в репозиторий. Затем в репозитории отобразится загруженный файл, как показано ниже -
Нажмите на загруженный файл, чтобы просмотреть его в программе просмотра github. Вы можете поделиться выделенным URL-адресом с другими.
Другой способ просмотреть файл записной книжки в Интернете - использовать утилиту nbviewer в Project Jupyter. открытоhttps://nbviewer.jupyter.org/и поместите URL-адрес файла в вашем репозитории в текстовое поле, как показано. Нажмите кнопку Go, чтобы просмотреть записную книжку.
Оба эти метода отображают файл записной книжки как статический HTML. Чтобы иметь возможность выполнять код в записной книжке, откройте его с помощью приложения Binder проекта Jupyter.
В окне nbviewer вы увидите кнопку «Выполнить в Binder». Нажмите на нее, и вы увидите, что файл записной книжки открывается точно так же, как вы открываете его с локальной панели управления записным сервером на вашем локальном компьютере. Вы можете выполнять все действия, такие как добавление / редактирование ячеек, запуск ячеек и т. Д.
Project Jupyter описывает JupyterLab как веб-интерфейс нового поколения для всех продуктов в экосистеме Jupyter. Он позволяет легко расширять возможности ноутбука, редакторов и терминалов.
Некоторые из важных функций JupyterLab обсуждаются ниже -
Консоль кода действует как блокнот для интерактивного выполнения кода. Он имеет полную поддержку расширенного вывода и может быть связан с ядром ноутбука для регистрации активности ноутбука.
Любой текстовый файл (Markdown, Python, R, LaTeX и т. Д.) Можно запускать интерактивно в любом ядре Jupyter.
Вывод ячейки записной книжки может отображаться на отдельной вкладке или вместе с записной книжкой, что позволяет использовать простые информационные панели с интерактивными элементами управления, поддерживаемыми ядром.
Редактирование документа в реальном времени отражается в других средствах просмотра, таких как редакторы или консоли. Возможен предварительный просмотр документов Markdown, значений, разделенных разделителями, или документов Vega / Vega-Lite в реальном времени.
JupyterLab может обрабатывать многие форматы файлов (изображения, CSV, JSON, Markdown, PDF и т. Д.). Он также отображает богатый вывод в этих форматах. JupyterLab предоставляет настраиваемые сочетания клавиш с использованием раскладки клавиш из многих известных текстовых редакторов.
Вы можете попробовать функции JupyterLab в Интернете перед установкой. Визитhttps://jupyter.org/try и выберите вариант «попробовать JupyterLab».
Вкладка запуска показывает доступные в настоящее время ядра и консоли. Вы можете создать новый ноутбук / терминал на основе любого из них. В левом столбце также есть вкладки для обозревателя файлов, запущенных ядер, вкладок и просмотра настроек.
JupyterLab обычно устанавливается автоматически вместе с дистрибутивом Anaconda. Однако его также можно установить отдельно, используя следующую команду conda -
conda install -c conda-forge jupyterlab
Вы также можете использовать команду pip для этой цели -
pip3 install jupyterlab
Для запуска приложения JupyterLab удобнее всего использовать Anaconda Navigator, если он установлен.
В качестве альтернативы запустите его из командной строки из командного терминала Windows / Linux или командной строки Anaconda, используя эту команду -
jupyter lab
В любом случае экран запуска приложения JupyterLab выглядит так:
Чтобы запустить новую записную книжку, щелкните нужное ядро. На скриншоте выше видно одно ядро - ядро Python3. Щелкните его, чтобы запустить записную книжку Python. Обратите внимание, что его функциональность аналогична той, которую мы изучали в этом руководстве.
Строка меню
Строка меню находится в верхней части окна. Меню по умолчанию, которые вы можете найти в этом:
File - Действия, связанные с файлами и каталогами.
Edit - Действия, связанные с редактированием документов и прочими действиями.
View - Действия, изменяющие внешний вид JupyterLab.
Run - Действия для запуска кода в различных действиях, таких как записные книжки и консоли кода.
Kernel - Действия для управления ядрами, которые представляют собой отдельные процессы для выполнения кода.
Tabs - Список открытых документов и действий в док-панели.
Settings - Общие настройки и редактор расширенных настроек.
Help - Список ссылок на JupyterLab и справку ядра.
На левой боковой панели показаны кнопки для запуска новой программы запуска, добавления папки, загрузки файла и обновления списка файлов. Правая панель - это основная рабочая область, где ноутбук, консоль и терминалы отображаются в виде вкладок.
Чтобы запустить новую консоль, щелкните символ + на левой боковой панели, чтобы открыть новую панель запуска, а затем щелкните параметр консоли. Консоль откроется в новой вкладке на правой панели.
Обратите внимание, что ячейка ввода находится внизу, но когда она запущена, ячейка и соответствующая выходная ячейка отображаются в верхней части вкладки консоли.
Программа запуска также позволяет открывать текстовый редактор и терминал, в котором можно вызывать оболочку IPython.
Project Jupyter теперь поддерживает ядра сред программирования. Теперь мы увидим, как установить ядро R в дистрибутив anaconda.
В окне командной строки Anaconda введите следующую команду -
conda install -c r r-essentials
Теперь на вкладке запуска выберите ядро R, чтобы запустить новую записную книжку.
Ниже приведен снимок экрана ноутбука Jupyter с ядром R: