<div><img src="https://top-fwz1.mail.ru/counter?id=3548135;js=na" style="position:absolute;left:-9999px;" alt="Top.Mail.Ru" /></div>
Публичное облако на базе VMware с управлением через vCloud Director
Вход / Регистрация

Jupyter Notebook: что это такое и зачем он нужен в программировании

Александр Бархатов
Александр Бархатов
Технический писатель
27 марта 2025 г.
39
13 минут чтения
Средний рейтинг статьи: 5

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

Что такое Jupyter Notebook

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

Отличия от стандартных IDE

Возникает вопрос — в чем же отличие Jupyter Notebook от других, стандартных IDE вроде Visual Studio Code, PyCharm или IntelliJ IDEA? Главное отличие заключается в интерактивности и пошаговом выполнении кода — любой фрагмент разрабатываемой программы можно разбить на отдельные части и запустить. Благодаря этому появляется возможность сразу видеть результаты выполнения отдельной части программы. В то время как в стандартных IDE код обычно пишется в виде целостных файлов и запускается целиком, в Jupyter Notebook код разбивается на ячейки, которые можно запускать по отдельности.

Функциональные возможности

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

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

  • Встроенный функционал по работе с визуализацией
    Визуализация включает в себя графики, схемы и таблицы, которые встроены прямо в интерфейс программы и отображаются в нижней панели. Также поддерживаются популярные библиотеки Python для работы с визуализацией данных — Matplotlib и Seaborn.

  • Поддержка большинства языков программирования
    Несмотря на то, что Jupyter Notebook первоначально был разработан специально для языков Python, R и Julia, программа поддерживает большинство современных языков программирования включая, C++, Java, Ruby, Go, Scala, Kotlin. Также поддерживаются языки для научных вычислений и специфических задач, включающие в себя MATLAB, Octave, Fortran, Haskell, SageMath. Дополнительно поддерживаются скриптовые языки Bash и PowerShell. Поддержка сторонних языков осуществляется через специальный компонент системы под названием «ядро». Перед началом работы с требуемым языком программирования необходимо установить ядро языка с помощью pip или вручную.

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

Архитектура и принцип работы

Jupyter Notebook использует клиент-серверную архитектуру, которая разделяет интерфейс пользователя и вычислительную логику. Основные компоненты системы:

Веб-интерфейс

Встроенный веб-интерфейс для управления программой.

Сервер Jupyter

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

Сервер использует веб-сокеты (WebSockets) для связи между клиентом и ядром.

Ядро

Под ядром понимают процесс, главной задачей которого является запуск и выполнение кода на поддерживаемом языке программирования. Каждое ядро связано с определенным языком программирования (JavaScript, C++, Java, Ruby, Go и другие).

Ядро запускается отдельно от сервера и общается с ним через протокол ZMQ (ZeroMQ), передавая код для выполнения и возвращая готовый результат выполнения.

Алгоритм работы Jupyter Notebook заключается в следующем:

  1. Пользователь запускает программу в терминале при помощи команды jupyter notebook.
  2. Дальнейшая работа происходит в веб-интерфейсе. Пользователь может создать новый ноутбук или открыть уже существующий.
  3. Ноутбук состоит из специальных ячеек. Все ячейки подразделяются на:
    • Code: для написания и выполнения кода.
    • Markdown: для форматированного текста, формул и документации.
    • Raw: для необработанного текста.
  1. Для выполнения кода пользователь запускает ячейку. Далее сервер пересылает содержимое ячейки ядру, используя протокол ZMQ.
  2. Ядро выполняет код и возвращает результат пользователю в виде текста, графики, ошибки и передает обратно серверу. Сервер передает результат клиенту, и он отображается под ячейкой.

Сферы использования

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

Анализ и обработка данных

К таким задачам можно отнести загрузку данных из CSV, JSON, баз данных, преобразование типов данных. Также благодаря поддержке таких библиотек, как Pandas, NumPy, Matplotlib, Seaborn, Jupyter Notebook можно использовать для построения гистограмм, диаграмм рассеяния и вычислительной статистики.

Работа с машинным обучением

Присутствует поддержка таких библиотек, как Scikit-learn, TensorFlow, PyTorch, что позволяет проводить обучение ИИ-моделей.

Научные исследования

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

Образовательная деятельность

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

Автоматизация задач

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

Работа с большими данными

Работа с большими данными может осуществляться с такими библиотеками как Bokeh или Dash.

Установка и запуск Jupyter Notebook

Рассмотрим процесс установки и запуска Jupyter Notebook на сервере с Ubuntu 24.04.

Предварительные требования

Чтобы установить и использовать Jupyter Notebook, нам понадобится следующее:

  1. Один сервер или одна виртуальная машина с любым предустановленным дистрибутивом Linux. В данной статье в качестве примера мы будем использовать дистрибутив Ubuntu версии 24.04.

Сервер должен соответствовать следующим требованиям:

  • Минимум 1 ГБ оперативной памяти. Данный объем подойдет только для тестирования Jupyter Notebook и не предназначен для решения высокоресурсных задач. Для более серьезных задач необходимо минимум 2 ГБ оперативной памяти.

  • Минимум 1-ядерный процессор для базовой конфигурации. Для выполнения реальных задач (например, для работы с большим объемом данных, для работы с математическими и научными вычислениями) рекомендуется 2-ядерный процессор.

  • Наличие публичного IP-адреса, который можно арендовать на этапе создания сервера в разделе «Сеть».

Сервер можно создать в панели управления в разделе «Облачные серверы». В процессе рекомендуем выбрать регион с минимальным пингом для быстрой передачи данных. Остальные параметры можно оставить без изменений.

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

  1. Интерпретатор языка Python. В Ubuntu версии 24.04 Python 3 версии уже предустановлен заранее. В этом можно убедиться, выполнив следующую команду:
python3 --version

Image12

Если Python все же не установлен, то для установки достаточно выполнить команды:

apt update && apt -y install python3
vds

Установка

  1. Для начала установим пакетный менеджер для скачивания Python-пакетов — pip, а также пакет для работы с виртуальным окружением Python — python-venv, который нам понадобится далее. Для этого выполняем команды:
apt update && apt -y install python3-pip python3-venv
  1. Проверяем, что установка была успешно выполнена, путем вывода версии pip:
pip3 --version

Image15

Если команда вернула в ответ версию pip, пакетный менеджер установлен.

  1. Создаем новую директорию для проекта и переходим нее:
mkdir my-jupyter-project && cd my-jupyter-project

Установим Jupyter-ноутбук при помощи виртуального окружения Python — специальной изолированной среды, которая позволяет управлять зависимостями и версиями используемых пакетов без конфликтов между собой. Для создания нового виртуального окружения с именем venv необходимо выполнить команду ниже. Убедитесь, что находитесь в директории my-jupyter-project, которую мы создали выше:

python3 -m venv venv

Далее активируем виртуальную среду:

source ./venv/bin/activate

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

Image5

Теперь можно установить Jupyter Notebook. Для этого используем следующую команду установки:

pip3 install jupyter

Запуск

  1. Теперь мы можем запустить Jupyter Notebook. Для этого используем команду ниже:
jupyter notebook --allow-root --ip=103.88.243.247

Image14

Рассмотрим команду подробнее:

  • Опция --allow-root разрешает запуск от имени пользователя root (ее необходимо использовать только при работе от имени root-пользователя, при работе из-под обычных пользователей она не требуется.
  • Опция --ip позволяет задать IP-адрес или доменное имя, на котором будет запущен веб-интерфейс программы. Т.к. у нас сервер без графического интерфейса и запустить с локального хоста мы не сможем, то укажем публичный IP-адрес сервера. В нашем случае это 103.88.243.247, у вас он будет отличаться. 
  1. Для доступа в веб-интерфейс будет сгенерировано две ссылки — одна для доступа при помощи публичного IP-адреса, другая для локального адреса:

Image11

Копируем ссылку из вывода команды, открываем браузер и переходим по ссылке. Отобразится веб-интерфейс программы:

Image1

  1. Веб-интерфейс будет активен, пока запущена программа. Чтобы завершить сеанс работы Jupyter Notebook, необходимо вернуться в терминал, нажать на сочетание клавиш Ctrl + C и при появлении фразы «Shut down this Jupyter server (y/[n])?» ввести букву y:

Image10

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

  1. Генерируем конфигурационный файл при помощи команды:
jupyter notebook --generate-config

Image13

  1. Чтобы установить пароль для Jupyter, используем команду:
jupyter notebook password

Image19

Программа попросит ввести пароль (Enter password) и повторить ввод пароля еще раз (Verify password). 

  1. Запустим Jupyter Notebook еще раз и проверим работоспособность без токена:
jupyter notebook --allow-root --ip=103.88.243.247

Image14

Обратите внимание, что в выводе теперь отсутствует строка с токеном. Вместо нее отобразится адрес веб-интерфейса в формате http://<IP адрес>/tree. Открываем строку с адресом в браузере:

Image2

  1. Перед нами отобразится форма ввода пароля. Вводим пароль, который мы задали ранее, и нажимаем на кнопку «Log in». Если пароль правильный, отобразится привычный интерфейс Jupyter Notebook.

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

В этой главе мы рассмотрим примеры практического использования Jupyter Notebook. Для этого сначала потребуется установить несколько пакетов Python: pandas, matplotlib и numpy.

  1. Убедитесь, что вы находитесь в виртуальном окружении (в терминале слева будет отображено название вашего виртуального окружения). Установите пакеты командой:
pip3 install pandas matplotlib numpy
  1. Повторно запустите Jupyter при помощи команды ниже, указав свой публичный IP:
jupyter notebook --allow-root --ip=103.88.243.210
  1. Скопируйте ссылку из вывода и откройте ее в браузере.
  2. В веб-интерфейсе нажмите на кнопку New справа и в выпадающем меню выберите пункт «Python 3 (ipykernel)»:

Image3

Ipykernel — это пакет, который предоставляет ядро IPython для Jupyter и отвечает за выполнение кода на языке Python. При написании и запуске кода в ячейках ipykernel служит «движком», который интерпретирует этот код и возвращает результаты отображая их в веб-интерфейсе Jupyter.

Пример 1. Вывод Hello, world!

Для начала запустим пару простейших примеров. Начнем с вывода фразы “Hello, world!”. В ячейке вводим точно такой же код, который используется в языке Python:

print ('Hello, world!')

Для запуска кода на панели сверху нажимаем на кнопку со стрелкой (Run this cell and advance):

Image9

Результат будет отображен ниже:

Image17

Пример 2. Умножение

Выполним еще одну простейшую операцию — умножим цифры 5 на 3 и выведем результат:

a = 5
b = 3
result = a * b
result

Image16

Пример 3. Работа с pandas

Начнем с популярной библиотеки pandas, которая используется для работы с данными и их анализа. Код ниже демонстрирует базовую работу с библиотекой pandas в Python: сначала происходит импорт pandas, далее создается словарь с данными, содержащий имена и возраст трех человек. В дальнейшем словарь преобразуется в объект DataFrame — табличную структуру данных, и выводит результат в виде таблицы с двумя столбцами (Name и Age) и тремя строками, где каждая строка соответствует человеку с его именем и возрастом. Индексы строк (0, 1, 2) добавлены автоматически:

import pandas as pd

data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35]}
df = pd.DataFrame(data)
df

Image18

Пример 4. Работа с matplotlib

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

Программа ниже создает простой линейный график с помощью модуля pyplot из библиотеки matplotlib, где на горизонтальной оси X отображаются значения [1, 2, 3, 4], а на вертикальной оси Y — значения [10, 20, 25, 30]. Точки соединены линиями, и каждая точка отмечена кружком благодаря параметру marker='o'. График имеет заголовок «Simple Line Plot», подпись оси X — «X-axis», подпись оси Y — «Y-axis», а результат отображается на экране после вызова функции plt.show().

import matplotlib.pyplot as plt

x = [1, 2, 3, 4]
y = [10, 20, 25, 30]
plt.plot(x, y, marker='o')
plt.title('Simple Line Plot')
plt.xlabel('X-axis')
plt.ylabel('Y-axis')
plt.show()

Image8

Пример 5. Работа с numpy

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

Программа ниже создает массив цифр от 1 до 5, затем вычисляет квадраты этих цифр с помощью списочного включения (list comprehension) и выводит оба результата:

import numpy as np

numbers = np.arange(1, 6)
squares = [n**2 for n in numbers]
print("Numbers:", numbers)
print("Squares:", squares)

Image6

Надежные VDS/VPS для ваших проектов

Вывод

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

27 марта 2025 г.
39
13 минут чтения
Средний рейтинг статьи: 5
Пока нет комментариев