Jupyter Notebook — что это и зачем аналитику

Коротко

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

Название — от трёх языков: Julia, Python, R. На практике 90% пользователей работают с Python. Формат файла — .ipynb (IPython Notebook).

Зачем аналитику Jupyter

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

Код + документация. В Markdown-ячейках описываешь логику, выводы, допущения. Получается воспроизводимый отчёт, а не просто скрипт без контекста.

Визуализация на месте. Графики matplotlib, seaborn, plotly отображаются прямо под ячейкой с кодом. Не нужно сохранять картинки и открывать отдельно.

Стандарт отрасли. Jupyter используют в Яндексе, Тинькофф, Озоне, Сбере. На собеседованиях live-coding часто проходит именно в ноутбуке.

Установка

Через pip

pip install jupyter
jupyter notebook

Команда jupyter notebook открывает браузер с интерфейсом. Рабочая директория — папка, из которой вы запустили команду.

Через Anaconda

Anaconda — дистрибутив Python с предустановленными библиотеками для анализа данных. Jupyter, pandas, numpy, matplotlib — всё уже внутри. Скачиваете с anaconda.com, устанавливаете, запускаете Jupyter из Anaconda Navigator.

Для новичков Anaconda проще: не нужно отдельно ставить библиотеки и разбираться с виртуальными окружениями.

Интерфейс и типы ячеек

Ноутбук — это последовательность ячеек. Каждая ячейка — либо код, либо текст.

Code-ячейки — код на Python. Нажимаешь Shift+Enter — ячейка выполняется, результат появляется снизу.

import pandas as pd

df = pd.DataFrame({
    'product': ['A', 'B', 'C'],
    'revenue': [1500, 3200, 800]
})
df.sort_values('revenue', ascending=False)

Markdown-ячейки — текст с разметкой: заголовки, списки, формулы, ссылки. Используй для описания шагов анализа, выводов, гипотез.

Переключение между типами: M — Markdown, Y — Code (в командном режиме).

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

Jupyter работает в двух режимах: командный (нажми Esc) и режим редактирования (нажми Enter в ячейке).

Командный режим

Клавиша Действие
Shift+Enter Выполнить ячейку, перейти к следующей
Ctrl+Enter Выполнить ячейку, остаться на месте
A Вставить ячейку выше
B Вставить ячейку ниже
DD Удалить ячейку
M Переключить в Markdown
Y Переключить в Code
Z Отменить удаление ячейки
L Показать номера строк

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

Клавиша Действие
Tab Автодополнение
Shift+Tab Документация функции
Ctrl+Shift+- Разделить ячейку

Shift+Enter — самая частая комбинация. Выучить на уровне рефлекса.

Магические команды

Magic commands — встроенные команды Jupyter, которых нет в обычном Python.

# Замерить время выполнения строки
%timeit df.groupby('category')['revenue'].sum()

# Замерить время всей ячейки
%%timeit
result = df.merge(users, on='user_id')
result.groupby('city')['revenue'].sum()

# Показать графики прямо в ноутбуке
%matplotlib inline

# Выполнить SQL-запрос (нужна библиотека ipython-sql)
%load_ext sql
%%sql
SELECT category, COUNT(*) FROM orders GROUP BY category

%timeit особенно полезен на собеседованиях, когда спрашивают про оптимизацию: можно показать разницу во времени между подходами.

Jupyter Notebook vs IDE

Jupyter IDE (PyCharm, VS Code)
Исследовательский анализ Идеально Неудобно
Продакшн-код Не подходит Идеально
Визуализация Графики в ноутбуке Отдельные окна/файлы
Отладка Ячейка за ячейкой Полноценный дебаггер
Версионирование Плохо (JSON-формат) Хорошо
Совместная работа Через экспорт Git, код-ревью

Правило: Jupyter — для анализа и прототипирования. IDE — для скриптов, пайплайнов, библиотек. Аналитику нужны оба инструмента.

JupyterLab и Google Colab

JupyterLab — следующее поколение Jupyter. Тот же ноутбук, но в многооконном интерфейсе: можно одновременно открыть ноутбук, терминал, файловый менеджер. Установка: pip install jupyterlab, запуск: jupyter lab.

Google Colab — Jupyter в облаке от Google. Не нужно ничего устанавливать: открыл браузер, написал код. Бесплатный GPU для ML-задач. Минус — зависишь от интернета и скорость может плавать.

Colab удобен для учёбы и быстрых экспериментов. Для рабочих задач лучше локальный Jupyter или JupyterLab — данные под контролем, нет ограничений по времени сессии.

Практические советы для аналитиков

Структурируй ноутбук. Первая ячейка — импорты. Потом загрузка данных. Потом анализ по шагам. Каждый шаг — Markdown-заголовок + код + вывод. Такой ноутбук поймёт и коллега, и ты сам через месяц.

Перезапускай ядро перед финальным запуском. Kernel → Restart & Run All. Это проверяет, что ноутбук воспроизводим от начала до конца, а не держится на переменных из удалённых ячеек.

Не пиши длинные ячейки. Одна ячейка — один логический шаг. Так проще искать ошибку и переиспользовать код.

Экспортируй результат. File → Download as → HTML/PDF. Коллеги и руководители получат готовый отчёт, который можно открыть без Python.

Частые ошибки

Запуск ячеек не по порядку. Самая частая проблема. Выполнил ячейку 5, потом ячейку 2, потом ячейку 7 — состояние ядра непредсказуемо. Всегда делай Restart & Run All перед тем, как делиться ноутбуком.

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

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

Чувствительные данные в ноутбуке. .ipynb хранит output ячеек. Если вывел таблицу с персональными данными, они сохранятся в файле. Перед коммитом — Clear All Outputs.

Вопросы с собеседований

-- Что такое Jupyter Notebook? -- Интерактивная среда для написания и выполнения кода, в которой код, текст, визуализации и результаты объединены в одном документе. Файл — .ipynb, внутри JSON-формат. Основной инструмент аналитиков для исследовательского анализа данных.

-- Чем Jupyter отличается от обычного Python-скрипта? -- В скрипте (.py) код выполняется целиком, сверху вниз. В Jupyter код разбит на ячейки, каждая выполняется независимо. Можно тут же видеть результат, строить графики, добавлять пояснения. Скрипт лучше для продакшна и автоматизации, Jupyter — для анализа и прототипирования.

-- Что такое ядро (kernel) в Jupyter? -- Процесс, который выполняет код. Хранит все переменные и состояние сессии. При перезапуске ядра все переменные теряются. У каждого открытого ноутбука своё ядро.

-- Какие magic-команды знаете? -- %timeit — замер времени выполнения строки, %%timeit — всей ячейки. %matplotlib inline — отображение графиков в ноутбуке. %who — список переменных. %load_ext — загрузка расширений. %%sql — выполнение SQL-запросов (с расширением ipython-sql).

-- Как сделать ноутбук воспроизводимым? -- Запускать Kernel → Restart & Run All перед отправкой. Не полагаться на порядок запуска ячеек, отличный от сверху вниз. Фиксировать версии библиотек (pip freeze). Не хранить абсолютные пути к данным.

Потренировать Python-вопросы на практике — откройте тренажёр. Вопросы по Python, SQL, pandas и аналитике. Бесплатно.

Дальше: Что такое Python, pandas шпаргалка, matplotlib для аналитика, Python-тренажёр, примеры вопросов.

FAQ

Jupyter Notebook — бесплатный?

Да, полностью. Открытый исходный код, лицензия BSD. Устанавливается через pip или Anaconda. Google Colab тоже бесплатный с базовыми ресурсами.

Jupyter работает только с Python?

Нет. Поддерживает Julia, R, Scala и десятки других языков через ядра (kernels). Но в аналитике данных 90% ноутбуков — на Python.

Можно ли использовать Jupyter для продакшн-кода?

Не рекомендуется. Jupyter заточен под исследовательский анализ, а не под стабильный продакшн-код. Для пайплайнов, автоматизации и деплоя лучше .py-скрипты в IDE. Прототипируйте в Jupyter, переносите в скрипты.

Чем JupyterLab отличается от Jupyter Notebook?

JupyterLab — это расширенный интерфейс. Многооконность, встроенный терминал, файловый менеджер, поддержка расширений. Ноутбуки те же самые (.ipynb), меняется только оболочка. JupyterLab постепенно заменяет классический интерфейс.