Jupyter Notebook

Jupyter Notebook (Юпитер-ноутбук) — это программа-блокнот для записи, передачи и запуска кода. Ей можно пользоваться как своеобразной средой разработки. Она существует как веб-сервис, то есть доступна через интернет и позволяет передавать код другим разработчикам.

Чаще всего среду используют для Python, но она существует и для других языков программирования. Jupyter Notebook поддерживает языки Ruby, Perl, R, MATLAB, Julia и другие. Часто это специализированные языки для задач, которые подразумевают быстрое написание и выполнение маленькой программы.

Отличие Юпитер-ноутбука от традиционных сред разработки — в его интерактивности. Программа позволяет запускать отдельные участки и блоки кода, выполнять их в любом порядке. А результаты работы сразу можно вывести в то же окно рядом с кодом.

Юпитер-ноутбуками во множественном числе называют документы с кодом, созданные в среде.

Кто пользуется Jupyter Notebook

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

Основные сферы использования среды — big data и data science, машинное обучение, математическая статистика и аналитика. В этих направлениях пригодилась способность Jupyter Notebook выводить данные туда же, где написан код. Получается как бы страница блокнота: в одном месте собраны участки кода, результаты их выполнения, таблицы, участки и графики.

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

Для чего нужен Jupyter Notebook

  • Писать код в специальной среде с подсветкой синтаксиса, исправлением ошибок и другими возможностями IDE.
  • Запускать разные участки кода в произвольной последовательности или написанную программу целиком.
  • Загружать какие-то данные, обрабатывать и преобразовывать их, не затрагивая при этом другие участки программы.
  • Вставлять и выводить результаты, включая визуализацию, прямо посреди кода.
  • Делиться кодом с другими разработчиками и давать им общий доступ к проекту.
  • Организовывать командную работу, когда у каждого программиста — своя задача, связанная с другими.
  • Писать сопровождающий текст и оформлять «документ» так, чтобы он выглядел красиво и понятно.

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

Две версии программы

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

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

Для загрузки локальной версии понадобится Python и установленный в него пакет Jupyter. Его можно скачать через консоль с помощью встроенной в Python утилиты pip. А еще Юпитер-ноутбук входит в состав расширения Anaconda.

Скачанные пакеты запустят локальный Jupyter-сервер, и интерфейс среды откроется в браузере. Им можно пользоваться на свое усмотрение, но доступа к облаку у локального сервера нет.

Как выглядит работа с Jupyter Notebook

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

Программирование. Если разработчик пишет на Python, он может просто создать файл и начать программировать, как в обычной среде. Для подключения других языков понадобится воспользоваться специальными командами — их называют магическими. Магическая команда выглядит как %%<язык программирования> и переключает среду на указанный язык. Так можно подключить даже bash, консольный язык команд для операционных систем.

Код в Юпитер-ноутбуке разделен на отдельные участки — блоки. Каждый блок можно запускать отдельно от других. Между блоками может находиться текст, графика, результаты выполнения кода и так далее. Получается своеобразный интерактивный документ — одновременно программа и текстовый файл.

Тексты. Кроме написания кода, в Юпитер-ноутбуке можно писать текст. Это не просто комментарии: в среде есть возможности для создания полноценной интерактивной статьи с кодом. Jupyter Notebook поддерживает разметку Markdown, которая позволяет создавать заголовки и списки, добавлять интерактивные ссылки и делать многое другое.

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

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

Для визуализации Jupyter Notebook использует библиотеки языков. Например, графики для Python чаще всего рисуются через Matplotlib. Юпитер-ноутбук поддерживает и другие расширения для визуализации, в том числе в интерактивном режиме. Правда, некоторые из них платные или медленные.

Запуск. В Jupyter Notebook, как и в любой IDE, можно запустить код. Отличие в том, что результаты показываются сразу и отображаются в том же документе. Для запуска есть специальная панель с кнопками: запустить, остановить, отладить и так далее.

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

Сохранение и общий доступ. В случае с локальной версией файлы сохраняются на устройстве. К облачной понадобится подключить хранилище, в котором будут лежать созданные ноутбуки. Чаще всего пользуются Google Colab — ответвлением Google Drive для разработки и исследований. Возможности Colab позволяют запускать код в браузере, сохранять документы и делиться ими.

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

Другие проекты

Есть еще одна версия среды-блокнота от тех же разработчиков, она называется Jupyter Lab. У нее несколько иной интерфейс и похожий принцип работы. Ее позиционируют как улучшенную версию Юпитер-ноутбука, которая позволяет «собирать» вместе несколько рабочих задач.

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

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

Преимущества Jupyter Notebook

Наглядность. Все находится в одном месте: код, сопровождающий текст, результаты и визуализация. Поэтому нужная информация всегда под рукой, а оформить ее можно в понятном формате. При этом Юпитер — полноценная среда, в которой можно запускать код и проверять его.

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

Широкие возможности. Jupyter Notebook мощный и гибкий. В нем все шире поддержка разных языков, в том числе специфических, есть нужные разработчику библиотеки. Облачная версия предоставляет мощности для отрисовки графиков — их тоже можно визуализировать с помощью разных инструментов. Markdown позволяет делать документы красивее и форматировать их. Есть и другие расширения: для создания презентаций, экспортирования документов в HTML и прочих функций.

Моментальный вывод результата. Результат выполненной программы в стандартной IDE открывается в отдельном окне или записывается в файл. В любом случае его довольно редко бывает можно просмотреть внутри среды, если это не текст и не число, а, скажем, график или таблица. А в Jupyter Notebook все отображается сразу под кодом, в том же документе. Удобно и, главное, видно сразу.

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

Недостатки Jupyter Notebook

Неуниверсальность. Если вам нужно только писать код, а тексты и графики ни к чему, Юпитер-ноутбук может оказаться попросту избыточным решением. К тому же он не подходит для крупных проектов, где все связано между собой. Он рассчитан на написание и выполнение отдельных маленьких «кусочков» программы, а не ее целиком. Держать там целый большой продукт будет неудобно как в отладке, так и в запуске.

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

Поэтому Jupyter Notebook не рекомендуют как основную среду, особенно для больших проектов. Но это удобный вспомогательный инструмент.

(рейтинг: 5, голосов: 3)
Добавить комментарий