Перейти к содержимому

Ipython display что это

  • автор:

Использование 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 ячейку со следующим содержимым:

![picture_of_bird](data/картинки/kartinki-ryabchiki-28.jpeg)

Синтаксис 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

Follow us on Google Plus Follow us on rss

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.

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

Создание папки в Jupyter notebook

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

Переименование папки в Jupyter notebook

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

Создание notebook

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

Jupyter notebook

.

Код на языке Python или текст в нотации Markdown нужно вводить в ячейки:

Jupyter notebook cell

Если это код Python, то на панели инструментов нужно выставить свойство “Code”.

Выбор типа ячейки

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

Выбор типа ячейки

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

3+2 пример в Jupyter notebook

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

Пример работы в Jupyter notebook

Основные элементы интерфейса Jupyter notebook

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

Изменение имени notebook

Из элементов интерфейса можно выделить, панель меню:

Панель меню Jupyter notebook

Панель инструментов Jupyter notebook

и рабочее поле с ячейками:

Рабочее поле с ячейками

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

Режим редактирования ячейки

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

Сочетания клавиш в Jupyter notebook

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

Python kernel остановлен

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

Запуск и прерывание выполнения кода

Если ваша программа зависла, то можно прервать ее выполнение выбрав на панели меню пункт 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

Список magic команд

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

Работа с %env

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

Работа с %run

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

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

Работа с %%time

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

Работа с %timeit

Информацию по остальным магическим командам можете найти здесь:

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

P.S.

Если вам интересна тема анализа данных, то мы рекомендуем ознакомиться с библиотекой Pandas. На нашем сайте вы можете найти вводные уроки по этой теме. Все уроки по библиотеке Pandas собраны в книге “Pandas. Работа с данными”.

Раздел: Python Уроки по Python Метки: Python, Уроки Python

Python. Урок 6. Работа с IPython и Jupyter Notebook : 4 комментария

  1. Уведомление: Adopting IPython & Jupyter For Selenium Testing: Plan, Write, Validate Tests in Python | Shakuro
  2. Михаил Филиппов 17.01.2021 ” это интерактивная оболочка для с широким набором возможностей ”
    после ДЛЯ пропало слово
  1. Ксения 30.10.2023 Сначала прописать activate baze, затем jupyter notebook. Также можно вызвать Anaconda Navigator и из него Jupiter Notebook

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *