Использование IPython
IPython — это интерактивная оболочка для языка программирования Python которая предоставляет расширенную интроспекцию, дополнительный командный синтаксис, подсветку кода и автодополнение. Является компонентом пакета программ SciPy. Лицензия BSD.
IPython – это интерактивная оболочка для с широким набором возможностей и ядро для Jupyter. Jupyter notebook является графической веб-оболочкой для IPython, которая расширяет идею консольного подхода к интерактивным вычислениям.
IPython позволяет осуществлять non-blocking взаимодействие с Tkinter, GTK, qt and WX. Стандартная оболочка Python позволяет взаимодействие только с Tkinter. IPython может интерактивно управлять параллельными кластерами используя асинхронные статусы обратных вызовов и/или MPI. IPython может использоваться как замена стандартной командной оболочки операционной системы, особенно на платформе Windows, возможности оболочки которой ограничены. Поведение по умолчанию похоже на поведение оболочек UNIX подобных систем, но тот факт что работа происходит в окружении Python позволяет добиваться большей настраиваимости и гибкости.
Настройка IPython
Глобальные настройки IPython находятся в домашней директории пользователя (от имени которого запускается IPython) в файле ~/.ipython/ipythonrc . Чтобы каждый раз после входа в оболочку не заниматься её настройками под свои предпочтения, IPython поддерживает профили. Параметры профилей хранятся в каталоге .ipython в файлах ipythonrc-. Здесь можно задать вид приглашения командной строки, псевдонимы и прочие параметры. Запуск оболочки с поддержкой соответствующего профиля выполняется командой «ipython -p . Встроенный профиль sh (команда запуска ipython -p sh) запускает IPython с более удобным приглашением (отображающим текущий каталог), автоматически выполнит функцию %rehashx, активирует расширение envpersist (которое сохраняет изменения переменных окружения между сессиями).
Функции IPython
lsmagic — выводит список «магических команд» IPython
In [5]: lsmagic Available magic functions: %Exit %Pprint %Quit %alias %autocall %autoindent %automagic %bg %bookmark %cd %clear %color_info %colors %cpaste %debug %dhist %dirs %doctest_mode %ed %edit %env %exit %hist %history %logoff %logon %logstart %logstate %logstop %lsmagic %macro %magic %p %page %pdb %pdef %pdoc %pfile %pinfo %popd %profile %prun %psearch %psource %pushd %pwd %pycat %quickref %quit %r %rehash %rehashx %rep %reset %run %runlog %save %sc %store %sx %system_verbose %time %timeit %unalias %upgrade %who %who_ls %whos %xmode Automagic is ON, % prefix NOT needed for magic functions.
dhist (аналог shell команды history). Выводит список посещенных директорий. Чтобы перейти в каталог из списка в строке 2 нужно выполнить команду cd -2
In [15]: dhist Directory history (kept in _dh) 0: /var/log 1: /var/log 2: /etc/apache2 3: /var/log In [16]: cd -2 /etc/apache2
bookmark — создает «закладки» на часто посещаемые каталоги.
In [17]: bookmark vlog /var/log In [18]: cd -b vlog (bookmark:vlog) -> /var/log /var/log
функции логирования
logstate - проверяет текущее состояние логирования In [23]: logstate Logging has not been activated. logstart - Включает логирование. Лог сохраняется в текущей директории как исходный код Python. In [3]: logstart Activating auto-logging. Current session state plus future input saved. Filename : ipython_log.py Mode : rotate Output logging : False Raw input log : False Timestamping : False State : active
Встраиваем картинки в Jupyter
Рассмотрим способы вставки картинок в Jupyter ноутбук.
Синтаксис Markdown
Выглядит следующим образом:

Например, исполним Markdown ячейку со следующим содержимым:

Синтаксис HTML
Для этого в Markdown ячейке используем тег . Этот способ позволяет задавать дополнительные настройки, в частности, размеры:
Возможности Ipython
В отличие от предыдущих способов позволяет совместить код и вывод картинки в одной ячейке, так как делает это посредством использования функции Image из модуля IPython.display:
from IPython.display import Image print('Картинка с птицей') Image("data/картинки/kartinki-ryabchiki-28.jpeg", width=320, height=240)
Интерактивные отчеты в Jupyter Notebook
Jupyter Notebook — важный инструмент для специалиста по науке о данных. С его помощью можно выполнять базовые задачи, такие как очистка данных, визуализация, создание моделей машинного обучения и многие другие. В Jupyter Notebook можно использовать Python и R (в зависимости от ядра), сохранять результаты выполнения кода в ячейках и делиться ими с другими людьми.
Анализ данных в Python
В Python можно группировать данные и создавать сводные таблицы с помощью встроенных функций из библиотеки pandas.
Классический способ создания сводных таблиц — с помощью старого доброго метода pivot_table. Как и у большинства методов Python, его синтаксис прост и удобен для чтения.
Однако чем сложнее логика слоя сводной таблицы, тем больше времени потребуется для ее написания. Более того, результирующая сводная таблица всегда является статической, а не интерактивной. При каждой смене расположения данных в сводной сетке, необходимо переписывать код. Возможно, вам не придется вносить много изменений, однако это время можно было бы потратить на то, чтобы лучше разобраться в данных.
Как создавать интерактивные сводные таблицы данных в Python
Самая интересная особенность этого подхода заключается в возможности сохранить полученный ноутбук с интерактивными компонентами визуализации данных в HTML и отправить его партнерам по команде. Они смогут открыть его в браузере, поэкспериментировать со сводной таблицей и диаграммами, сделать собственные наблюдения, сохранить отчет и отправить его обратно. Такой подход может значительно повысить продуктивность анализа данных в целом.
Мы будем работать в JupyterLab — пользовательском интерфейсе для Jupyter Notebooks, в котором можно найти все элементы классического Jupyter, такие как ноутбуки и файловый браузер. Помимо этого, JupyterLab предлагает более расширенную функциональность: возможность устанавливать расширения, разворачивать, сворачивать и перетаскивать ячейки, а также предоставляет функцию автозаполнения вкладок.
Создание отчета в JupyterLab
Запускаем JupyterLab. Для начала импортируем необходимые библиотеки Python: pandas, JSON и модуль display из IPython. Во всех этих библиотеках встроен дистрибутив Anaconda, однако, если вы не работаете с ним, то установите эти библиотеки глобально или в виртуальной среде.
- pandas — неотъемлемый инструмент для работы со структурами данных в Python.
- IPython — API для интерактивных и параллельных вычислений в Python. display — это его модуль, представляющий собой API для инструментов отображения в IPython.
- Библиотека json предоставляет API для кодирования и декодирования JSON. Если вы уже работали с модулями marshal или pickle , то знакомы с этим API.
Для визуализации данных мы будем использовать библиотеку JavaScript Flexmonster Pivot Table & Charts.
Для демонстрации воспользуемся набором данных “Цены на авокадо” из Kaggle. Это легкий набор, содержащий разумное количество полей. Вы можете выбрать любой понравившийся вам набор данных.
▶ Загрузите данные. С помощью pandas прочитайте данные CSV на фрейме данных. Удалите “Unnamed: 0” — столбец индекса, который часто появляется при чтении файлов CSV.
df = pd.read_csv('avocado.csv')
df.drop(columns=['Unnamed: 0'], inplace=True)
▶ Вызовите метод to_json() на фрейме данных, чтобы преобразовать его в строку JSON и сохранить в переменную json_data .
Параметр orient определяет ожидаемый формат строки JSON. Устанавливаем его в значение records. Это значение переводит объект в структуру, подобную списку: [ value>, … , value>]. Именно с этим форматом работает Flexmonster.
▶ Теперь создадим экземпляр Flexmonster с помощью вложенного словаря. Здесь нужно указать все необходимые параметры инициализации и передать декодированные данные компоненту. Для декодирования JSON воспользуемся методом json.loads() .
flexmonster = "container": "#pivot-container",
"componentFolder": "https://cdn.flexmonster.com/",
"width": "100%",
"height": 430,
"toolbar": True,
"report": "dataSource": "type": "json",
"data": json.loads(json_data) # decoding JSON
>,
"slice": "reportFilters": [
"uniqueName": "Date.Year",
"filter": "members": [
"date.year.[2018]"
]
>
>,
"uniqueName": "Date.Month",
"filter": "members": [
"date.month.[january]"
]
>
>
],
"rows": [
"uniqueName": "region"
>,
"uniqueName": "type"
>
],
"columns": [
"uniqueName": "[Measures]"
>
],
"measures": [
"uniqueName": "Total Volume",
"aggregation": "sum"
>,
"uniqueName": "Total Bags",
"aggregation": "sum"
>
],
"sorting": "column": "type": "desc",
"tuple": [],
"measure": "uniqueName": "Total Volume",
"aggregation": "sum"
>
>
>
>,
"options": "grid": "type": "classic"
>
>,
"formats": [
"name": "",
"decimalPlaces": 2
>
]
>
>
Как видите, мы сразу устанавливаем срез, опции и форматы. Если пропустить этот шаг, то в сводной таблице отобразится срез по умолчанию.
▶ Теперь преобразуем объект Python в JSON с помощью json.dumps() :
▶ Следующий шаг — определение функции, которая отображает сводную таблицу непосредственно в ячейку. Для этого определяем многострочную строку и передаем ее в импортированную функцию HTML:
def render_pivot_table(json_component):
layout = '''
Flexmonster Integration with Jupyter Notebook
new Flexmonster();
'''.format(json_component)
return HTML(layout)
▶ И, наконец, передаем JSON в функцию рендеринга и вызываем ее:
На странице отображается интерактивная сводная таблица. Набор данных готов к работе: вы можете переупорядочить поля в сетке, изменять агрегаты, настраивать фильтрацию и сортировку, форматировать значения и многое другое для создания уникального отчета. Более того, если вы пропустите способ отображения записей в фрейме данных, то сможете переключиться из сводного режима в плоское представление. Таким образом, можно увидеть данные в исходном виде, но с интерактивной функциональностью.
Сводная таблица выглядит следующим образом:
Вы также можете применить условное форматирование, чтобы сосредоточиться на самых важных значениях.
Создание панели индикаторов в Jupyter Notebook
Теперь немного усложним логику, добавив больше элементов в ноутбук. Две сводные диаграммы сделают визуализацию данных более универсальной. Для этого определяем дополнительную функцию, которая принимает несколько компонентов JSON и отображает их на странице. Ее логика выглядит так же, как и логика одной сводной таблицы. Компоненты сводных диаграмм определяются так же, как компоненты сводных таблиц.
В срезах отчетов для сводных диаграмм можно установить фильтры Top X для ограничения количества категорий, отображаемых в диаграммах, чтобы сделать их более аккуратными и компактными.
Интерактивная панель индикаторов в Jupyter Notebook готова к работе!
Заключение
Мы рассмотрели новый способ манипулирования и представления данных в Jupyter Notebook с помощью Python и библиотеки визуализации данных JavaScript. Как вы могли заметить, настройка не требует много кода и времени.
Выполнив ее однажды, вы сможете исследовать данные в привычном рабочем пространстве.
Этот подход освобождает вас от переписывания фрагментов кода при каждой необходимости взглянуть на данные под новым углом, а также прекрасно сочетается с главной идеей Jupyter Notebooks — сделать визуализацию и анализ данных интерактивными и гибкими.
Полную версию кода можно найти на GitHub.
Расширенные опции
Краткий список основных функций, с помощью которых можно улучшить отчеты:
В большинстве случаев реальные данные неаккуратны и непоследовательны: поля могут быть названы с использованием разных случаев, непонятных сокращений и т. д. Для уточнения можно воспользоваться отображением (mapping) — свойством отчета, которое устанавливает конфигурации представлений, применяемых к источнику данных. Еще одним преимуществом этой функциональности форматирования является явная настройка типов данных. С ее помощью можно указать компоненту способ обработки полей, что повлияет на выбор агрегатов, доступных для иерархий полей.
В примере GitHub показано, как определить объект mapping и установить его в сводную таблицу.
Сводная таблица содержит методы и события JavaScript API. Вы можете настроить сохранение отчетов в различных форматах локально или в удаленных точках, таких как серверы, с помощью метода exportTo .
Чтобы ввести новые формулы в отчет, можно добавить расчетные значения.
- 4 совета по улучшению Jupyter Notebooks
- Прокачка Jupyter Notebooks
- Как легко оптимизировать Jupyter Notebook. Часть 1
Python. Урок 6. Работа с IPython и Jupyter Notebook
![]()
IPython представляет собой мощный инструмент для работы с языком Python. Базовые компоненты IPython – это интерактивная оболочка для с широким набором возможностей и ядро для Jupyter. Jupyter notebook является графической веб-оболочкой для IPython, которая расширяет идею консольного подхода к интерактивным вычислениям.
Основные отличительные особенности данной платформы – это комплексная интроспекция объектов, сохранение истории ввода на протяжении всех сеансов, кэширование выходных результатов, расширяемая система “магических” команд, логирование сессии, дополнительный командный синтаксис, подсветка кода, доступ к системной оболочке, стыковка с pdb отладчиком и Python профайлером.
IPython позволяет подключаться множеству клиентов к одному вычислительному ядру и, благодаря своей архитектуре, может работать в параллельном кластере.
В Jupyter notebook вы можете разрабатывать, документировать и выполнять приложения на языке Python, он состоит из двух компонентов: веб-приложение, запускаемое в браузере, и ноутбуки – файлы, в которых можно работать с исходным кодом программы, запускать его, вводить и выводить данные и т.п.
Веб приложение позволяет:
- редактировать Python код в браузере, с подсветкой синтаксиса, автоотступами и автодополнением;
- запускать код в браузере;
- отображать результаты вычислений с медиа представлением (схемы, графики);
- работать с языком разметки Markdown и LaTeX.
Ноутбуки – это файлы, в которых сохраняются исходный код, входные и выходные данные, полученные в рамках сессии. Фактически, он является записью вашей работы, но при этом позволяет заново выполнить код, присутствующий на нем. Ноутбуки можно экспортировать в форматы PDF, HTML.
Установка и запуск
Jupyter Notebook входит в состав Anaconda. Описание процесса установки можно найти в первом уроке. Для запуска Jupyter Notebook перейдите в папку Scripts (она находится внутри каталога, в котором установлена Anaconda) и в командной строке наберите:
> ipython notebook
В результате будет запущена оболочка в браузере.

Примеры работы
Будем следовать правилу: лучше один раз увидеть… Рассмотрим несколько примеров, выполнив которые, вы сразу поймете принцип работы с Jupyter notebook.
Запустите Jupyter notebook и создайте папку для наших примеров, для этого нажмите на New в правой части экрана и выберите в выпадающем списке Folder.

По умолчанию папке присваивается имя “Untitled folder”, переименуем ее в “notebooks”: поставьте галочку напротив имени папки и нажмите на кнопку “Rename”.

Зайдите в эту папку и создайте в ней ноутбук, воспользовавшись той же кнопкой New, только на этот раз нужно выбрать “Python [Root]”.

В результате будет создан ноутбук.

.
Код на языке Python или текст в нотации Markdown нужно вводить в ячейки:
![]()
Если это код Python, то на панели инструментов нужно выставить свойство “Code”.

Если это Markdown текст – выставить “Markdown”.

Для начал решим простую арифметическую задачу: выставите свойство “Code”, введите в ячейке “2 + 3” без кавычек и нажмите Ctrl+Enter или Shift+Enter, в первом случае введенный вами код будет выполнен интерпретатором Python, во втором – будет выполнен код и создана новая ячейка, которая расположится уровнем ниже так, как показано на рисунке.

Если у вас получилось это сделать, выполните еще несколько примеров.

Основные элементы интерфейса Jupyter notebook
У каждого ноутбука есть имя, оно отображается в верхней части экрана. Для изменения имени нажмите на его текущее имя и введите новое.

Из элементов интерфейса можно выделить, панель меню:
![]()
![]()
и рабочее поле с ячейками:

Ноутбук может находиться в одном из двух режимов – это режим правки (Edit mode) и командный режим (Command mode). Текущий режим отображается на панели меню в правой части, в режиме правки появляется изображение карандаша, отсутствие этой иконки значит, что ноутбук находится в командном режиме.

Для открытия справки по сочетаниям клавиш нажмите “Help->Keyboard Shortcuts”

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

Если оно выполняет какую-то задачу, то изображение измениться на закрашенный круг.
Запуск и прерывание выполнения кода
Если ваша программа зависла, то можно прервать ее выполнение выбрав на панели меню пункт Kernel -> Interrupt.
Для добавления новой ячейки используйте Insert->Insert Cell Above и Insert->Insert Cell Below.
Для запуска ячейки используете команды из меню Cell, либо следующие сочетания клавиш:
Ctrl+Enter – выполнить содержимое ячейки.
Shift+Enter – выполнить содержимое ячейки и перейти на ячейку ниже.
Alt+Enter – выполнить содержимое ячейки и вставить новую ячейку ниже.
Как сделать ноутбук доступным для других людей?
Существует несколько способов поделиться своим ноутбуком с другими людьми, причем так, чтобы им было удобно с ним работать:
- передать непосредственно файл ноутбука, имеющий расширение “.ipynb”, при этом открыть его можно только с помощью Jupyter Notebook;
- сконвертировать ноутбук в html;
- использовать https://gist.github.com/ ;
- использовать http://nbviewer.jupyter.org/.
Вывод изображений в ноутбуке
Печать изображений может пригодиться в том случае, если вы используете библиотеку matplotlib для построения графиков. По умолчанию, графики не выводятся в рабочее поле ноутбука. Для того, чтобы графики отображались, необходимо ввести и выполнить следующую команду:
%matplotlib inline
Пример вывода графика представлен на рисунке ниже.

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

Для работы с переменными окружения используется команда %env.

Запуск Python кода из “.py” файлов, а также из других ноутбуков – файлов с расширением “.ipynb”, осуществляется с помощью команды %run.

Для измерения времени работы кода используйте %%time и %timeit.
%%time позволяет получить информацию о времени работы кода в рамках одной ячейки.

%timeit запускает переданный ей код 100000 раз (по умолчанию) и выводит информацию среднем значении трех наиболее быстрых прогонах.

Информацию по остальным магическим командам можете найти здесь:
Интересные примеры ноутбуков, в которых довольно полно раскрыты возможности Jupyter Notebook можно найти в ресурсах, перечисленных ниже.
P.S.
Если вам интересна тема анализа данных, то мы рекомендуем ознакомиться с библиотекой Pandas. На нашем сайте вы можете найти вводные уроки по этой теме. Все уроки по библиотеке Pandas собраны в книге “Pandas. Работа с данными”.
Раздел: Python Уроки по Python Метки: Python, Уроки Python
Python. Урок 6. Работа с IPython и Jupyter Notebook : 4 комментария
- Уведомление: Adopting IPython & Jupyter For Selenium Testing: Plan, Write, Validate Tests in Python | Shakuro
- Михаил Филиппов 17.01.2021 ” это интерактивная оболочка для с широким набором возможностей ”
после ДЛЯ пропало слово
- Ксения 30.10.2023 Сначала прописать activate baze, затем jupyter notebook. Также можно вызвать Anaconda Navigator и из него Jupiter Notebook
