для чего нужен jupiter notebook

JupyterLab и Jupyter Notebook — мощные инструменты Data Science

Подробно рассказываем об инструментах семейства Jupyter – эффективных средствах разработки для задач Data Science и смежных областей.

для чего нужен jupiter notebook

Краткий обзор

В конце февраля был выпущен релиз JupyterLab – гибкой, интегрируемой и легко расширяемой среды, поддерживающей одновременную работу с несколькими блокнотами Jupyter, текстовыми файлами, датасетами, терминалами и другими компонентами. Аналогично классическим IDE в JupyterLab можно упорядочивать документы в рабочей области в удобном порядке при помощи вкладок и разделителей.

JupyterLab поддерживает отображение и редактирование множества форматов данных: изображений, CSV, JSON, Markdown, PDF, Vega, Vega-Lite и так далее. Для быстрой навигации по документам в JupyterLab есть настраиваемые горячие клавиши, а также возможность использования стандартных сочетаний из vim, emacs и Sublime Text.

JupyterLab может быть дополнен при помощи расширений, позволяющих настроить под себя различные части JupyterLab, включая темы, редакторы файлов и дополнительные компоненты.

Если вы уже знакомы с Jupyter Notebook, то вы очень быстро освоитесь с JupyterLab, которая в существенной мере обогащает возможности классического блокнота Jupyter. Не устанавливая JupyterLab, вы можете ознакомиться с демо-примером на странице Binder – инструменты Jupyter поддерживают запуск на сторонних серверах.

Для этой статьи мы взяли за основу ключевые моменты из документации JupyterLab, а также рассмотрели особенности лежащего в основе этой среды типа данных Jupyter Notebook, чтобы те, кто еще не использовали блокноты Jupyter, оценили их преимущества.

Установка

Среда JupyterLab может быть установлена при помощи conda, pip или pipenv:

conda

pipenv

или из репозитория git:

При использовании pipenv для запуска при помощи jupyter lab вам необходимо предварительно активировать виртуальное окружение проекта.

Запуск

Запуск сервера JupyterLab из терминала производится следующей простой командой:

При этом интерфейс JupyterLab автоматически открывается в используемом вами браузере. Также вы можете получить доступ к запущенному серверу, введя в адресную строку браузера соответствующую ссылку (по умолчанию это http://localhost:8888). Вы можете открыть классический интерфейс блокнота Jupyter, выбрав “Launch Classic Notebook” из меню Help, или переключаться между интерфейсами, заменяя окончание строки: /lab для интерфейса JupyterLab или /tree для классического интерфейса.

Интерфейс

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

Интерфейс JupyterLab состоит из основной рабочей области, содержащей вкладки документов и инструментов, скрываемой левой боковой панели и меню.

для чего нужен jupiter notebook

Меню по умолчанию выглядит следующим образом:

Расширения JupyterLab позволяют создавать дополнительные вкладки в панели меню.

Боковая панель

Боковая панель содержит браузер файлов (Files), список запущенных инструментов (Running), палитру команд (Commands), инспектор инструментов ячеек блокнота (Cells) и списка вкладок (Tabs).

для чего нужен jupiter notebook

Процесс «схлопывания» боковой панели происходит по клику на открытой вкладке, как это проиллюстрировано в коротком видео ниже.

Использование расширений JupyterLab также позволяет добавлять в боковую панель дополнительные вкладки.

Основная рабочая область

Основная рабочая область позволяет группировать документы (блокноты, текстовые файлы и пр.) и другие инструменты (терминалы, консоли и т. д.) в виде панелей с вкладками, размер и расположение которых можно изменить перетаскиванием.

Вкладки и режим работы с отдельным документом

Вкладка Tabs в боковой панели показывает список открытых документов и инструментов в рабочей области:

для чего нужен jupiter notebook

Эта же информация доступна на вкладке Tabs в menu:

для чего нужен jupiter notebook

Часто полезно сфокусироваться на отдельном документе и инструменте без того, чтобы закрывать все остальные вкладки в рабочей области. Для этого в JupyterLab есть режим работы с отдельным документом. Его можно запустить из панели View («Single-Document Mode») или воспользоваться сочетанием горячих клавиш (по умолчанию Ctrl+Shift+Enter).

Контекстные меню

Многие составляющие JupyterLab, такие как блокноты, текстовые файлы, консоли и вкладки, имеют собственные контекстные меню.

Для использования оригинального контекстного меню браузера при вызове контекстного меню зажимайте Shift.

Горячие клавиши

Аналогично классическому Jupyter Notebook, вы можете использовать для навигации и запуска инструментов горячие клавиши, которые можно настроить при помощи Advanced Settings Editor в меню в панели Settings.

Вы также можете настроить текстовый редактор так, чтобы использовать сочетания горячих клавиш из vim, emacs или Sublime Text. Для этого в меню в панели Settings выберите строку Text Editor Key Map.

Работа с файлами

Браузер файлов и меню File позволяют открывать, создавать, удалять, переименовывать, скачивать, копировать и делиться файлами и директориями. Файлы открываются стандартно – двойными кликом в браузере файлов из боковой панели.

Также вы можете перетащить файл в рабочую область, создав таким образом дополнительную вкладку сразу в нужном вам месте.

Для некоторых типов файлов поддерживаются множественные представления. Например, вы можете открыть файл Markdown в текстовом редакторе или в форме HTML-страницы. Расширения JupyterLab позволяют использовать дополнительные методы просмотра/редактирования различных файлов, добавляя в контекстное меню новые строки «Open With. «.

Удобная особенность JupyterLab заключается в том, что разные представления файла синхронизируются между собой. То есть, работая, например, с тем же файлом Markdown в редакторе, вы сразу же видите как он отрисовывается в HTML.

Создавать новые файлы и инструменты можно кликнув на плюс в браузере файлов. Это вызывает новую вкладку с лаунчером в рабочей области, позволяющим выбрать используемый инструмент.

Того же результата можно добиться на вкладке New в меню File.

для чего нужен jupiter notebook

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

Новый файл создается с именем по умолчанию. Переименовывается файл из контекстного меню браузера файлов или вкладки, на которой открыт файл.

Файлы также могут быть загружены в текущую директорию переносом их в панель браузера файлов или при помощи кнопки «Upload files» в верхней части браузера файлов.

Текстовый редактор

Текстовый редактор JupyterLab имеет инструмент подсветки синтаксиса, настройки отступов (табы/пробелы) и сочетаний горячих клавиш.

Все редакторы Jupyter поддерживают множественный курсор, аналогично, например, Sublime Text. Таким образом, можно существенно быстрее править однотипные части текста и кода.

Jupyter Notebook

Блокноты Jupyter (также часто в российском сообществе называемые ноутбуками) представляют собой документы, комбинирующие блоки запускаемого кода с текстом в Markdown-разметке, формулами (LaTeX), изображениями, интерактивными визуализациями и другими форматами выходных данных.

для чего нужен jupiter notebook

Остановимся подробнее на основной особенностях блокнотов Jupyter, сделавших их такими популярными.

Блокноты Jupyter позволяют интерактивно работать с кодом непосредственно в браузере. Блокнот Jupyter состоит из независимо запускаемых ячеек с кодом, которые в результате запуска выполняют содержащийся в ячейке программный код и добавляют в пространство имен соответствующие имена переменных, функций, классов и т. д. Ячейки с кодом можно перемежать ячейками с Markdown-разметкой и, как будет показано далее, ячейками с кодом на различных языках программирования и разметки. Код можно запускать как отдельно для каждой ячейки, так и последовательно от первой ячейки к последней. Вы можете попробовать работу с блокнотами Jupyter на одном из языков Python, Julia или R так же на Binder, независимо от Jupyter Lab и без установки.

Магические функции

Одна из крайне удобных составляющих Jupyter Notebook – это специальные магические функции, облегчающие задачи при добавлении их в начало соответствующих ячеек. Так, например, вставка %matplotlib inline приводит к автоматическому выводу изображений matplotlib непосредственно в вывод ячейки. Примеры других команд представлены ниже, с полным списком магических функций вы можете ознакомиться здесь.

Тайминг

Профилирование

Логирование

Дебаггинг

Общие методы магических функций

Работа с директориями

Псевдонимы и замены стандартного использования

Импорт и экспорт кода

Переменные среды и пространство имен

Вывод документации и поиск информации

Другие

Выполнение shell-команд

Блокноты позволяют вызвать любую shell-команду прямо из ячейки. Например, так можно быстро установить недостающую библиотеку:

Запись формул в LaTeX

Использование разных языков

В одном блокноте можно использовать сразу несколько языков программирования. Обозначив это при помощи двух знаков процента в начале ячейки, например, %%python2, %%python3, %%R, %%bash и т. д. Идентичным образом можно получать отрисовку ячеек с кодом в LaTeX, поставив в начале ячейки %%latex. Аналогично служат команды %%html, %%javascript (или %%js), %%markdown, %%ruby, %%sh.

Блокноты (ноутбуки) в JupyterLab

Блокноты Jupyter (.ipynb файлы) полностью поддерживаются в JupyterLab. Формат документов идентичен классическому Jupyter Notebook. Имеющиеся у вас блокноты будут аналогичным образом отображаться в JupyterLab.

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

Для удобства работы вы можете временно скрывать и отображать большие куски вывода данных при помощи соответствующей кнопки слева от каждой ячейки.

Альтернативный вариант просмотра – использование скроллинга или вывода результатов ячейки в отдельную вкладку.

Автодополнения по клавише Tab в сравнении с Jupyter Notebook включают дополнительную информацию о типах соответствующих объектов.

Подсказки, активируемые при помощи Shift Tab содержат дополнительную информацию об объектах.

Вы также можете подключить консоль, чтобы вести лог сделанных вычислений в том порядке, в каком они были сделаны в блокноте. Консоль можно использовать как место для интерактивной проверки различных небольших идей без изменения блокнота. Для этого из консольного меню блокнота выберите «Create Console for Notebook».

Терминалы

Терминалы JupyterLab обеспечивают полную поддержку для системных оболочек (bash, tcsh и т. д.) на Mac/Linux и PowerShell на Windows. Через терминал вы можете запустить практически любую программу, включая vim или emacs.

для чего нужен jupiter notebook

Управление ядрами и терминалами

Вкладка Running в боковой панели показывает список всех ядер и терминалов, запущенных в данный момент.

для чего нужен jupiter notebook

Как и в классическом Jupyter Notebook, когда вы закрываете вкладку документа, консоли или терминала, соответствующее ядро или терминал продолжают работу на сервере, и у вас остается возможность подключиться к ним позже. Вкладка Running позволяет вам заново открыть соответствующий инструмент или выключить его.

Палитра команд

Все пользовательские действия в JupyterLab обрабатываются при помощи централизованной командной системы. Эти команды являются общими и используются совместно во всех элементах JupyterLab. Палитра команд в боковой панели предоставляет способ для их быстрого поиска и запуска.

Перенаправление кода консоли

В архитектуре Jupyter ядра представляют собой отдельные процессы, запускаемые сервером, которые работают с определенным кодом при помощи соответствующего языка и окружения. JupyterLab позволяет запускать код из любого открытого текстового документа, вызвав из контекстного меню команду «Create Console for Editor». Наиболее частым примером такой необходимости служат вкрапления кода, включенные в Markdown-разметку, которые можно запустить в консоли еще более просто по горячей клавише Shift Enter.

Файлы различных форматов

В архитектуре JupyterLab существенное внимание уделено отображению и редактированию данных в самых разных форматах – и загружаемым в качестве входных данных, и выгружаемым на выходе. Формат файлов автоматически определяется по расширению файла или его имени при отсутствии расширения. Как было упомянуто выше, файлы могут открываться в нескольких представлениях, например, в редакторе и средстве просмотра.

для чего нужен jupiter notebook

Для того, чтобы использовать эти различные форматы данных в качестве выходных данных в блокноте или консоли вы можете использовать соответствующий API для отображения, например, запуск следующего кода

приведет к отображению соответствующего HTML-коду блока.

для чего нужен jupiter notebook

Кратко опишем какие еще форматы в текущий момент поддерживаются (соответствующие видеоиллюстрации можно посмотреть на странице документации):

Расширения

Архитектура JupyterLab построена с возможностью дальнейшего расширения среды. Расширения позволяют добавлять новые темы, средства просмотра других файлов или отрисовки других форматов внутри блокнотов, добавляют дополнительные вкладки в меню и команды в Command Pallete, создают возможности дополнительной настройки системы.

Расширения JupyterLab представляют собой npm-пакеты (стандартные пакеты для JavaScript-разработки). Многие из них разработаны самим сообществом на GitHub, соответственно вы можете найти их в этом топике. Также вам могут быть интересны старые решения для расширения магических функций.

Основной способ для включения расширений выглядит следующим образом:

где my-extension – имя того расширения, что вы хотите установить. Можно использовать как расширения, находящиеся среди пакетов в npm, так и созданные вами. Дополнительно об этом читайте на странице документации.

Среди интересных расширений стоит обратить внимание, в частности, на расширение RISE, позволяющее показывать блокнот Jupyter в виде презентации (интересный пример).

Серверы и совместная работа

Сервис mybinder предоставляют доступ к Jupiter Notebook и JupyterLab со всеми установленными библиотеками, так что пользователь может изучать и запускать созданный вами проект, имея под рукой только браузер.

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

В качестве примера использования JupyterHub как преднастроенной среды для совместной работы множества пользователей посмотрите видео о применении этого инструмента в аналитике Яндекса.

Источник

Руководство по Jupyter Notebook для начинающих

Jupyter Notebook — это мощный инструмент для разработки и представления проектов Data Science в интерактивном виде. Он объединяет код и вывод все в виде одного документа, содержащего текст, математические уравнения и визуализации.

Такой пошаговый подход обеспечивает быстрый, последовательный процесс разработки, поскольку вывод для каждого блока показывается сразу же. Именно поэтому инструмент стал настолько популярным в среде Data Science за последнее время. Большая часть Kaggle Kernels (работы участников конкурсов на платформе Kaggle) сегодня созданы с помощью Jupyter Notebook.

для чего нужен jupiter notebook

Этот материал предназначен для новичков, которые только знакомятся с Jupyter Notebook, и охватывает все этапы работы с ним: установку, азы использования и процесс создания интерактивного проекта Data Science.

Настройка Jupyter Notebook

Чтобы начать работать с Jupyter Notebook, библиотеку Jupyter необходимо установить для Python. Проще всего это сделать с помощью pip:

Теперь нужно разобраться с тем, как пользоваться библиотекой. С помощью команды cd в командной строке (в Linux и Mac) в первую очередь нужно переместиться в папку, в которой вы планируете работать. Затем запустите Jupyter с помощью следующей команды:

Это запустит сервер Jupyter, а браузер откроет новую вкладку со следующим URL: https://localhost:8888/tree. Она будет выглядеть приблизительно вот так:

для чего нужен jupiter notebook

Отлично. Сервер Jupyter работает. Теперь пришло время создать первый notebook и заполнять его кодом.

Основы Jupyter Notebook

Для создания notebook выберите «New» в верхнем меню, а потом «Python 3». Теперь страница в браузере будет выглядеть вот так:

для чего нужен jupiter notebook

Теперь напишем какой-нибудь код!

для чего нужен jupiter notebook

Вывод должен отобразиться прямо в notebook. Это и позволяет заниматься программированием в интерактивном формате, имея возможность отслеживать вывод каждого шага.

для чего нужен jupiter notebook

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

Добавление описания к notebook

В Jupyter Notebook есть несколько инструментов, используемых для добавления описания. С их помощью можно не только оставлять комментарии, но также добавлять заголовки, списки и форматировать текст. Это делается с помощью Markdown.

Первым делом нужно поменять тип ячейки. Нажмите на выпадающее меню с текстом «Code» и выберите «Markdown». Это поменяет тип ячейки.

для чего нужен jupiter notebook

Интерактивная наука о данных

Соорудим простой пример проекта Data Science. Этот notebook и код взяты из реального проекта.

для чего нужен jupiter notebook

для чего нужен jupiter notebook

Также обратите внимание на то, как переменные из предыдущих ячеек, содержащие данные из CSV-файла, используются в последующих ячейках в том случае, если по отношению к первым была нажата кнопка «Run».

для чего нужен jupiter notebook

Это простейший способ создания интерактивного проекта Data Science!

На сервере Jupyter есть несколько меню, с помощью которых от проекта можно получить максимум. С их помощью можно взаимодействовать с notebook, читать документацию популярных библиотек Python и экспортировать проект для последующей демонстрации.

Редактировать (Edit): используется, чтобы вырезать, копировать и вставлять код. Здесь же можно поменять порядок ячеек, что понадобится для демонстрации проекта.

Вставить (Insert): для добавления ячеек перед или после выбранной.

Ячейка (Cell): отсюда можно запускать ячейки в определенном порядке или менять их тип.

Помощь (Help): в этом разделе можно получить доступ к важной документации. Здесь же упоминаются горячие клавиши для ускорения процесса работы. Наконец, тут можно найти ссылки на документацию для самых важных библиотек Python: Numpy, Scipy, Matplotlib и Pandas.

Источник

Jupyter Notebook для начинающих: учебник

Jupyter Notebook — невероятно мощный инструмент для интерактивной разработки и представления проектов в области наук о данных. В этой статье вы узнаете, как настроить Jupyter Notebooks на локальном компьютере и как начать использовать его в ваших проектах.

Начнем с определения: что такое «notebook» (блокнот)? Блокнот объединяет код и его вывод в единый документ, который объединяет визуализацию, повествовательный текст, математические уравнения и другие мультимедиа. Этот интуитивно понятный рабочий процесс способствует итеративной и быстрой разработке, что делает ноутбуки все более популярным выбором для представления в данных и их анализа.

Лучше всего то, что в рамках проекта с открытым исходным кодом Project Jupyter он полностью бесплатен.

Проект Jupyter является преемником более раннего проекта IPython Notebook, который впервые был опубликован в качестве прототипа в 2010 году. Хотя в Jupyter Notebooks можно использовать с многими разными языками программирования, в этой статье основное внимание будет уделено Python, поскольку он является наиболее распространенный вариантом использования.

Чтобы получить максимальную отдачу от этого урока, вы должны быть знакомы с программированием, особенно с Python и pandas. Тем не менее, если у вас есть опыт работы с другим языком, Python в этой статье не будет слишком сложным, а статья все равно будет вам полезной в настройке Jupyter Notebooks локально. Как вы увидите позже в этой статье, Jupyter Notebooks также может выступать в качестве гибкой платформы для работы с pandas и даже с Python.

Пример анализа данных в блокноте Jupyter

Сначала мы пройдемся по настройке и анализу примера, чтобы ответить на наш вопрос. Итак, допустим, вы аналитик данных, и вам было поручено выяснить, как исторически менялась прибыль крупнейших компаний в США. У нас для этого будет набор данных о компаниях из списка Fortune 500, охватывающих более 50 лет с момента первой публикации списка в 1955 году, собранных из открытого архива Fortune. Для анализа мы создали CSV файл данных, который вы можете скачать отсюда.

Как мы покажем, ноутбуки Jupyter идеально подходят для этого исследования.

И так, давайте продолжим и установим Jupyter.

Инсталяция

Для новичка проще всего начать работу с Jupyter Notebooks, установив дистрибутив Anaconda. Anaconda является наиболее широко используемым дистрибутивом Python для работы с данными и поставляется с предустановленными наиболее популярными библиотеками и инструментами. Некоторые из крупнейших библиотек Python, включенных в Anaconda, включают NumPy, pandas и Matplotlib, хотя вы можете взглянуть на полный список с более чем 1000+ пакетов. Это позволит вам приступить к работе, без хлопот управления бесчисленными установками или беспокойства о зависимостях и проблемах установки, связанных с ОС.

Чтобы установить Анаконду, просто:

Если вы более продвинутый пользователь с уже установленным Python и предпочитаете управлять своими пакетами вручную, вы можете просто использовать pip для установки Jupyter Notebooks:

Создание вашего первого блокнота

В этом разделе мы научимся запускать и сохранять блокноты, познакомиться с их структурой и рассмотрим их интерфейс. Мы познакомимся с некоторыми основными терминами, которые приведут вас к практическому пониманию того, как самостоятельно использовать Jupyter Notebooks, и подготовимся к следующему разделу, в котором описан пример анализа данных и опробуем на практике все, что мы изучаем здесь.

Запуск Jupyter

В Windows вы можете запустить Jupyter с помощью ярлыка, который Anaconda добавляет в ваше меню «Пуск», которое откроет новую вкладку в веб-браузере по умолчанию, и которая должна выглядеть примерно так, как показано на следующем скриншоте

для чего нужен jupiter notebook

Это пока не блокнот, но не паникуйте! Это панель инструментов ноутбука, специально разработанная для управления ноутбуками Jupyter. Думайте об этом как о панели запуска.

Имейте в виду, что панель управления предоставит вам доступ только к файлам и подпапкам, содержащимся в каталоге запуска Jupyter; однако каталог запуска может быть изменен. Также можно запустить панель мониторинга в любой системе через командную строку (или терминал в системах Unix), введя команду jupyter notebook; в этом случае текущим рабочим каталогом будет каталог запуска.

Проницательный читатель, возможно, заметил, что URL-адрес панели мониторинга похож на http://localhost:8888/tree. Localhost не является веб-сайтом, но указывает, что контент обслуживается с вашего локального компьютера: с вашего собственного компьютера. Ноутбуки и панель инструментов Jupyter — это веб-приложения, и Jupyter запускает локальный веб сервер Python для обслуживания этих приложений в веб-браузере, что делает его практически независимым от платформы и открывает возможности для более удобного обмена в Интернете.

Интерфейс панели управления в основном не требует пояснений — хотя мы вернемся к нему позже. Так чего же мы ждем? Перейдите в папку, в которой вы хотите создать свой первый блокнот, нажмите кнопку «Создать» в правом верхнем углу и выберите «Python 3» (или выбранную вами версию).

для чего нужен jupiter notebook

Ваш первый блокнот Jupyter откроется в новой вкладке — каждый блокнот использует свою вкладку, поэтому вы можете открывать несколько блокнотов одновременно. Если вы переключитесь обратно на панель инструментов, вы увидите новый файл Untitled.ipynb и зеленый текст, который говорит о том, что ваш ноутбук работает.

Что за файл ipynb?

Будет полезно понять, что это за файл на самом деле. Каждый файл .ipynb представляет собой текстовый файл, который описывает содержимое вашей записной книжки в формате JSON. Каждая ячейка и ее содержимое, включая вложения изображений, которые были преобразованы в строки текста, перечислены в нем вместе с некоторыми метаданными. Вы можете редактировать их самостоятельно — если знаете, что делаете! — выбрав «Edit> Edit Notebook Metadata» в строке меню в записной книжке.

Вы также можете просмотреть содержимое файлов вашей записной книжки, выбрав «Edit» на панели управления, но ключевое слово здесь — «можете»; нет никакой другой причины, кроме любопытства, делать это, если вы действительно не знаете, что делаете.

Интерфейс Notebook

Теперь, когда перед вами открытый блокнот, надеюсь, его интерфейс не будет выглядеть совершенно чуждым; В конце концов, Jupyter — это просто продвинутый текстовый процессор. Почему бы не осмотреться? Просотрите меню, чтобы почувствовать его, особенно потратьте несколько минут, чтобы прокрутить список команд в палитре команд, который представляет собой небольшую кнопку со значком клавиатуры (или Ctrl + Shift + P).

для чего нужен jupiter notebook

Вы должны заметить два довольно важных термина, которые, вероятно, являются новыми для вас: cells (ячейки) и kernels (ядра) являются ключом как к пониманию Jupyter, так и к тому, что делает его не просто текстовым процессором. К счастью, эти термины не сложно понять.

Ячейки (Cell)

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

Первая ячейка в новой записной книжке всегда является ячейкой кода. Давайте проверим это на классическом примере с Hello World. Введите print (‘Hello World!’) в ячейку и нажмите кнопку запуска на панели инструментов показанная выше или нажмите Ctrl + Enter. Результат должен выглядеть как то так:

Когда вы запустите ячейку, ее вывод будет отображен ниже, а метка слева изменится с In [] на In [1]. Вывод ячейки кода также является частью документа, поэтому вы можете увидеть его в этой статье. Вы всегда можете определить разницу между кодом и ячейками Markdown, потому что ячейки кода имеют эту метку слева, а ячейки Markdown — нет.

Часть «In» метки просто короткая запись слова «Input», а номер метки указывает, когда ячейка была выполнена в ядре — в нашем случае ячейка была выполнена первой. Запустите ячейку снова, и метка изменится на In [2], потому что теперь ячейка была второй, запущенной в ядре. Позже станет понятнее, почему это так полезно, когда мы поближе познакомимся с ядрами.

В строке меню нажмите Insert (Вставить) и выберите Insert Cell Below (Вставить ячейку ниже), чтобы создать новую ячейку кода под первым и попробуйте следующий код, чтобы увидеть, что происходит. Вы замечаете что-то другое?

Эта ячейка не производит никакого вывода, но для ее выполнения требуется три секунды. Обратите внимание, как Jupyter показывает, что ячейка в данный момент работает, изменив метку на In [*].

Как правило, выходные данные ячейки поступают из любых текстовых данных, специально напечатанных во время выполнения ячеек, а также из значения последней строки в ячейке, будь то переменная-одиночка, вызов функции или что-то еще. Например:

Горячие клавиши

Последнее, что вы, возможно, заметили при запуске ваших ячеек, это то, что их рамка стала синей, тогда как она была зеленой, когда вы редактировали ее. Всегда есть одна «активная» ячейка, выделенная рамкой, цвет которой обозначает ее текущий режим, где зеленый означает edit mode (режим редактирования), а синий — command mode (командный режим).

До сих пор мы показали, как запустить ячейку с помощью Ctrl + Enter, но есть еще много других возможностей. Сочетания клавиш являются очень популярным аспектом среды Jupyter, поскольку они обеспечивают быстрый рабочий процесс на основе ячеек. Многие из этих действий вы можете выполнять в активной ячейке, когда она находится в командном режиме.

Ниже вы найдете список некоторых сочетаний клавиш Jupyter. Вам не нужно сразу их запоминать, но список должен дать вам хорошее представление о том, что это возможно.

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

Markdown

Markdown — это легкий, простой в освоении язык разметки для форматирования простого текста. Его синтаксис имеет однозначное соответствие с тегами HTML, поэтому некоторые предварительные знания здесь могут быть полезны, но это определенно не является обязательным условием. Давайте рассмотрим основы с кратким примером.

При прикреплении изображений у вас есть три варианта:

У Markdown гораздо больше возможностей, особенно в отношении гиперссылок, а также возможно просто включить простой HTML. Если вы захотите узнать больше, вы можете обратиться к официальному руководству от создателя Markdown, Джона Грубера, на его веб-сайте.

Ядра (Kernels)

За каждым ноутбуком работает ядро. Когда вы запускаете ячейку кода, этот код выполняется в ядре, и любой вывод возвращается обратно в ячейку для отображения. Состояние ядра сохраняется во времени и между ячейками — оно относится к документу в целом, а не к отдельным ячейкам.

Например, если вы импортируете библиотеки или объявляете переменные в одной ячейке, они будут доступны в другой. Таким образом, вы можете думать о документе блокнота как о чем-то сравнимом с файлом сценария, за исключением того, что он является мультимедийным. Давайте попробуем, чтобы почувствовать это. Сначала мы импортируем пакет Python и определим функцию.

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

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

Здесь нет сюрпризов! Но теперь давайте изменим у.

Как вы думаете, что произойдет, если мы снова запустим ячейку, содержащую наш оператор print? Мы получим на выходе 4 в квадрате 10?

Большую часть времени поток в вашем ноутбуке будет сверху вниз, но часто приходится возвращаться, чтобы внести изменения. В этом случае важен порядок выполнения, указанный слева от каждой ячейки, например, In [6], позволит вам узнать, имеет ли какая-либо из ваших ячеек устаревший вывод. И если вы когда-нибудь захотите сбросить настройки, есть несколько невероятно полезных опций из меню Kernel:

Если ваше ядро зависло в вычислении, и вы хотите остановить его, вы можете выбрать опцию Interupt.

Выбор ядра

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

Существуют не только ядра для разных версий Python, но и более 100 языков, включая Java, C и даже Fortran. Исследователи данных могут быть особенно заинтересованы в ядрах для R и Julia, а также в imatlab и ядре Calysto MATLAB Kernel для Matlab. Ядро SoS обеспечивает многоязычную поддержку в пределах одного ноутбука. Каждое ядро имеет свои собственные инструкции по установке, но, вероятно, потребует от вас выполнения некоторых команд на вашем компьютере.

Пример анализа

Теперь когда мы рассмотрели, что такое Jupyter Notebook, пришло время взглянуть на то, как они используются на практике, что должно дать вам более четкое представление о том, почему они так популярны. Наконец-то пришло время начать работу с тем набором данных Fortune 500, который упоминался ранее. Помните, наша цель — узнать, как исторически менялась прибыль крупнейших компаний США.

Названия для ноутбуков

Прежде чем начать создавать свой проект, вы, вероятно, захотите дать ему осмысленное имя. Возможно, это несколько сбивает с толку: но вы не можете назвать или переименовать свои записные книжки из самого приложения для записной книжки, а для переименования файла .ipynb необходимо использовать панель мониторинга или файловый браузер. Мы вернемся к информационной панели, чтобы переименовать созданный ранее файл, который будет иметь имя файла по умолчанию для записной книжки Untitled.ipynb.

Вы не можете переименовать ноутбук во время его работы, потому что его сначала нужно выключить. Самый простой способ сделать это — выбрать «File> Close and Halt» в меню ноутбука. Однако вы также можете выключить ядро, перейдя в «Kernel> Shutdown» в приложении для ноутбука или выбрав ноутбук на приборной панели и нажав «Shutdown» (см. Изображение ниже).

для чего нужен jupiter notebook

Затем вы можете выбрать свой блокнот и нажать «Rename» на панели управления.

для чего нужен jupiter notebook

Обратите внимание, что закрытие вкладки «notebook» в вашем браузере не «закроет» вашу записную книжку так же, как закрытие документа в традиционном приложении. Ядро ноутбука будет продолжать работать в фоновом режиме и должно быть отключено, прежде чем оно действительно «закроется». Это очень удобно, если вы случайно закрыли вкладку или браузер! Если ядро закрыто, вы можете закрыть вкладку, не беспокоясь о том, работает ли оно по-прежнему или нет.

Как только вы назвали свою записную книжку, откройте ее снова, и мы начнем.

Настройка

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

Здесь мы импортируем pandas для работы с нашими данными, Matplotlib для построения графиков и Seaborn для улучшения внешнего вида наших графиков. Обычно также импортируется NumPy, но в нашем случае, мы используем его через pandas, и нам не нужно это делать явно. Последняя строка не является командой Python, она является нечто, называемое строковой магией, для инструктирования Jupyter захватывать графики Matplotlib и отображать их в выходных данных ячейки; это одна из ряда расширенных функций, которые выходят за рамки данной статьи.

Давайте продолжим и загрузим наши данные.

Целесообразно делать это в отдельной ячейке на случай, если нам понадобится перезагрузить ее в любой момент.

Сохранение и контрольная точка

Теперь, когда мы начали создавать проект, лучше регулярно сохраняться. Нажатие Ctrl + S сохранит вашу записную книжку, вызвав команду «Save and Checkpoint», но что это за checkpoint (контрольная точка)?

Каждый раз, когда вы создаете новую записную книжку, создается файл контрольной точки, а также файл вашей записной книжки; он будет расположен в скрытом подкаталоге вашего места сохранения с именем .ipynb_checkpoints, и также является файлом .ipynb. По умолчанию Jupyter каждые 120 секунд автоматически сохраняет ваш блокнот в этот файл контрольных точек, не изменяя основной файл блокнота. Когда вы сохраняете и сохраняете контрольную точку, файлы записной книжки и контрольной точки обновляются. Следовательно, контрольная точка позволяет вам восстановить несохраненную работу в случае непредвиденной проблемы. Вы можете вернуться к контрольной точке из меню через «File> Revert to Checkpoint».

Изучение нашего набора данных

Наш блокнот благополучно сохранен, и мы загрузили наш набор данных переменную df в наиболее часто используемую структуру данных pandas, которая называется DataFrame и в основном выглядит как таблица. Давай те посмотрим как выглядят наши данные?

yearrankcompanyrevenue (in millions)profit (in millions)
019551General Motors9823.5806
119552Exxon Mobil5661.4584.8
219553U.S. Steel3250.4195.4
319554General Electric2959.1212.6
419555Esmark2510.819.1
yearrankcompanyrevenue (in millions)profit (in millions)
254952005496Wm. Wrigley Jr.3648.6493
254962005497Peabody Energy3631.6175.4
254972005498Wendy’s International3630.457.8
254982005499Kindred Healthcare3616.670.6
254992005500Cincinnati Financial3614.0584

У нас есть столбцы, которые нам нужны, и каждая строка соответствует одной компании за один год.

Давайте просто переименуем эти столбцы, чтобы мы могли обратиться к ним позже.

Далее нам нужно изучить наш набор данных. Являются ли они завершенными? Распознало ли pandas их, как ожидалось? Отсутствуют ли в них какие-либо значения?

У нас есть 500 строк за каждый год с 1955 по 2005 год включительно.

Давайте проверим, был ли наш набор данных импортирован, как мы ожидали. Простая проверка состоит в том, чтобы увидеть, были ли типы данных (или dtypes) правильно интерпретированы.

Ооо Похоже, что с колонкой profit что-то не так — мы ожидаем, что это будет float64, как колонка revenue. Это указывает на то, что она, вероятно, содержит нецелые значения, так что давайте посмотрим.

yearrankcompanyrevenueprofit
2281955229Norton135.0N.A.
2901955291Schlitz Brewing100.0N.A.
2941955295Pacific Vegetable Oil97.9N.A.
2961955297Liebmann Breweries96.0N.A.
3521955353Minneapolis-Moline77.4N.A.

Как мы и подозревали! Некоторые значения являются строками, которые использовались для указания отсутствующих данных. Есть ли какие-то другие значения, которые закрались?

Получается, что других значений нет. Это облегчает интерпретацию, но что нам делать? Это зависит от того, сколько значений пропущено.

Это небольшая часть нашего набора данных, хотя и не совсем несущественная, поскольку все еще составляет около 1,5%. Если строки, содержащие N.A., примерно одинаково распределены по годам, самым простым решением было бы просто удалить их. Итак, давайте кратко рассмотрим их распределение.

для чего нужен jupiter notebook

На первый взгляд, мы видим, что самые недопустимые значения за один год составляют менее 25, а поскольку существует 500 точек данных в год, удаление этих значений будет составлять менее 4% данных для худших лет. Действительно, кроме всплеска около 90-х годов, большинство лет имеют менее половины недостающих значений пика. Для наших целей допустим, что это приемлемо, и мы просто удалим эти строки.

Мы должны проверить, что у нас получилось.

Супер! Мы завершили настройку набора данных.

Если бы вы собирались представить свою записную книжку в виде отчета, вы могли бы избавиться от созданных нами исследовательских ячеек, которые включены здесь в качестве демонстрации процесса работы с записными книжками, и объединить соответствующие ячейки (см. Раздел «Дополнительные функции» ниже для подробностей об этом) для создания единой ячейки настройки набора данных. Это будет означать, что если мы когда-нибудь испортим наш набор данных в другом месте, мы сможем просто повторно запустить ячейку настройки, чтобы восстановить ее.

Графики с matplotlib

Далее мы можем перейти к решению данного вопроса, построив график средней прибыли за год. Мы можем также рассчитать доход, поэтому сначала мы определим некоторые переменные и метод, чтобы уменьшить наш код.

для чего нужен jupiter notebook

Вау, это похоже на экспоненту, но у нее есть огромные провалы. Они должны соответствовать рецессии начала 1990-х и пузырю доткомов. Это довольно интересно увидеть в данных. Но почему прибыль возвращается к еще более высоким уровням после каждой рецессии?

Может быть, доходы могут рассказать нам больше.

для чего нужен jupiter notebook

Это добавляет другую сторону истории. Доходы отнюдь не так сильно пострадали, это отличная бухгалтерская работа для финансовых отделов.

С небольшой помощью Stack Overflow мы можем наложить эти графики с +/- их стандартными отклонениями.

для чего нужен jupiter notebook

Это ошеломляет, стандартные отклонения огромны. Некоторые компании из списка Fortune 500 зарабатывают миллиарды, в то время как другие теряют миллиарды, и риск увеличивается вместе с ростом прибыли за последние годы. Возможно, некоторые компании работают лучше, чем другие; Являются ли прибыли первых 10% более или менее волатильными, чем нижние 10%?

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

Делимся своими ноутбуками

Когда люди говорят о совместном использовании своих ноутбуков, обычно они рассматривают две парадигмы. Чаще всего люди разделяют конечный результат своей работы, что означает обмен неинтерактивными, предварительно отрендеренными версиями своих ноутбуков; однако также существует возможность совместного использования ноутбуков с такими вспомогательными системами контроля версий, как Git.

Так же, в интернете появляются новые компании, предлагающие возможность запуска интерактивных Jupyter Notebooks в облаке.

Прежде чем поделиться

Общий блокнот будет отображаться точно в том состоянии, в котором он находился при экспорте или сохранении, включая вывод любых ячеек кода. Поэтому, чтобы обеспечить совместимость вашего ноутбука, так сказать, есть несколько шагов, которые вы должны предпринять, прежде чем им делиться:

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

Экспорт ваших ноутбуков

GitHub

Если у вас есть учетная запись GitHub, самый простой способ поделиться записной книжкой через GitHub на самом деле вообще не используя Git. С 2008 года GitHub предоставляет сервис Gist для размещения и совместного использования фрагментов кода, каждый из которых имеет свой собственный репозиторий. Чтобы поделиться блокнотом с помощью Gists:

Это должно выглядеть примерно так:

для чего нужен jupiter notebook

Если вы создали общедоступную Gist, теперь вы сможете поделиться ее URL-адресом с кем угодно, а другие смогут fork and clone вашу работу.

Создание собственного репозитория Git и распространение его на GitHub выходит за рамки данного руководства, но GitHub предоставляет множество руководств, которые помогут вам освоить его самостоятельно.

Nbviewer

К 2015 году NBViewer стал самым популярным средством рендеринга ноутбуков в Интернете. Если у вас уже есть место для размещения ваших ноутбуков Jupyter в Интернете, будь то GitHub или где-либо еще, NBViewer отобразит ваш блокнот и предоставит совместно используемый URL-адрес вместе с ним. Предоставляется как бесплатный сервис в рамках проекта Jupyter, он доступен по адресу nbviewer.jupyter.org.

Первоначально разработанный до интеграции GitHub с Jupyter Notebook, NBViewer позволяет любому вводить URL-адрес, идентификатор Gist или имя пользователя/репозиторий/файл GitHub, и он отображает блокнот в виде веб-страницы. Идентификатор Gist — это уникальный номер в конце URL; например, строка символов после последнего обратного слеша в https://gist.github.com/username/50896401c23e0bf417e89cd57e89e1de. Если вы введете имя пользователя GitHub или username/репо, вы увидите минимальный файловый браузер, который позволит вам просматривать репозитории пользователя и их содержимое.

URL-адрес, отображаемый NBViewer при отображении записной книжки, является константой в зависимости от URL-адреса записываемой записной книжки, поэтому вы можете поделиться этим с кем угодно, и он будет работать, пока исходные файлы остаются в сети.

Заключение

Начав с основ, мы познакомились с естественным рабочим процессом Jupyter Notebooks, углубились в более продвинутые функции IPython и, наконец, научились делиться своей работой с друзьями, коллегами и миром. И мы сделали все это из самой записной книжки!

Если вы хотите получить вдохновение для своих собственных ноутбуков, Jupyter собрал галерею интересных ноутбуков Jupyter, которые вам могут пригодиться, и на домашней странице Nbviewer есть ссылки на действительно интересные примеры качественных ноутбуков.

Источник


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

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