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

Этот материал будет полезен всем, кто хочет упростить свою работу с данными и кодом: начинающим Python-разработчикам, которые еще не вполне освоились с классическими IDE; дата-сайентистам, которым нужно наглядно представлять и документировать результаты своих исследований; студентам, изучающим программирование и анализ данных; и даже преподавателям, демонстрирующим примеры кода на лекциях. Готовы перестать мучить себя и окружающих стандартными средами разработки, когда нужно просто быстро проверить гипотезу?
- Что такое Jupyter Notebook и почему он популярен
- Где используется: основные сферы применения
- Какие языки поддерживает Jupyter Notebook
- Способы запуска
- Как устроен интерфейс
- Основные элементы интерфейса
- Примеры работы в JN
- Визуализация данных
- Полезные советы и расширения
- Вопросы безопасности при работе с Jupyter Notebook
- Заключение
- Рекомендуем посмотреть курсы по системной аналитике
Что такое Jupyter Notebook и почему он популярен
Jupyter Notebook — это не просто очередная среда разработки, которую маркетологи пытаются выдать за революцию в программировании. Это действительно особый инструмент, занимающий уникальную нишу между полноценными IDE (вроде PyCharm с его многотонной функциональностью) и примитивными текстовыми редакторами, где приходится писать код вслепую, надеясь, что он заработает хотя бы с десятой попытки.
История Jupyter началась вовсе не с Jupyter. Изначально в 2001 году появился IPython Notebook — интерактивная оболочка для Python, которая позволяла выполнять команды поочерёдно и видеть результат сразу. Это было революционно для своего времени, потому что позволило программистам не просто писать код, но и экспериментировать с ним вживую.
В 2014 году проект IPython пережил важный этап развития. Разработчики решили вынести «блокнотную» часть в отдельный проект, так как стало ясно: подход с интерактивными ячейками удобен не только для Python. Так появился Jupyter Notebook — название выбрано не случайно. Оно отсылает к трём популярным языкам, для которых изначально был задуман Jupyter: Julia, Python, R.
По сути, это интерактивный веб-блокнот, позволяющий создавать документы с живым кодом, визуализациями и пояснительным текстом. Его магия в том, что он хранит всё это великолепие в формате .ipynb (IPython Notebook), структурируя информацию в JSON-подобном формате. Звучит технично? На практике это означает, что весь ваш скрипт, его результаты, графики и текстовые пояснения хранятся в одном аккуратном файле, который можно передать коллеге, и он увидит в точности то же самое, что видели вы — без мучительных танцев с бубном вокруг зависимостей и настроек.
Ключевая особенность — его ячеистая структура. Вместо монолитного скрипта вы работаете с отдельными блоками кода (ячейками), которые можно запускать независимо друг от друга и в любом порядке. Представьте, что вы можете написать кусочек кода на салфетке и сказать салфетке: «Выполнись», и она действительно выполнится. Кажется фантастикой? По крайней мере, таково моё личное оценочное суждение.
Каждая ячейка в “ноутбуке” работает через так называемое «ядро» (kernel) — движок, который интерпретирует и исполняет ваш код. По умолчанию это Python, но об этом поговорим чуть позже.
Основные преимущества:
- Интерактивность — запускайте фрагменты кода и сразу видите результат, без необходимости выполнять весь скрипт целиком (очень удобно, когда ваш код занимает больше времени на выполнение, чем вы на кофе-брейк).
- Визуализация на лету — графики и диаграммы отображаются прямо в ноутбуке, рядом с породившим их кодом (никаких «где эта картинка сохранилась?»).
- Документирование в процессе — добавляйте форматированный текст между блоками кода, создавая повествование вокруг вашего анализа (как будто вы пишете научную статью и код одновременно).
- Портативность — делитесь готовыми ноутбуками со всеми результатами, а не только исходным кодом (что особенно ценно, когда ваш начальник не умеет запускать Python-скрипты).
- Гибкость формата — экспортируйте ноутбуки в PDF, HTML, слайды презентаций и другие форматы (когда нужно выдать что-то «презентабельное» для не-технических коллег).
Если коротко, JN стал популярен потому, что он решает главную проблему исследовательского программирования — позволяет экспериментировать с кодом, документировать процесс и делиться результатами в едином, понятном для людей формате. Как будто кто-то наконец-то понял, что программисты тоже люди, и им нужны удобные инструменты.
Где используется: основные сферы применения
JN, как швейцарский нож для работы с кодом и данными, прижился в самых разных областях — от «хардкорной» науки до образования первоклашек. И это неудивительно: когда у тебя есть инструмент, позволяющий одновременно писать код, видеть результаты и документировать процесс, сложно найти сферу, где бы он не пригодился. Разберем основные области, где “ноутбук” стал фактически незаменимым (или, по крайней мере, вызывает существенно меньше ругательств, чем альтернативы).
Анализ данных и визуализация
Здесь он чувствует себя как рыба в воде. Представьте, что вы получили массив данных и хотите его «пощупать» — посмотреть распределение, найти выбросы, построить пару графиков. В классическом сценарии это означало бы написать скрипт, запустить его, сохранить результаты куда-то, открыть их… В Jupyter вы просто загружаете данные в одной ячейке, анализируете в другой, визуализируете в третьей — и всё это видно сразу, без лишних телодвижений. Аналитики и дата-сайентисты используют ноутбуки для создания так называемых «историй данных» — когда анализ превращается в связное повествование с кодом, графиками и пояснениями.
Научные исследования
Ученые обожают JN, и не только потому, что многие из них не хотят тратить время на изучение сложных IDE. “Ноутбук” идеально подходит для воспроизводимых исследований — когда нужно не только получить результат, но и показать, как именно он был получен. Физики симулируют сложные системы, биологи анализируют геномные данные, химики моделируют молекулярные взаимодействия — и всё это в формате, который можно опубликовать вместе со статьей. Кстати, ряд научных журналов уже принимает ноутбуки как дополнительные материалы к публикациям. Представляете, наука становится прозрачнее — теперь можно не только прочитать выводы, но и проверить расчеты! Революция, не меньше.
Машинное обучение и нейросети
ML-инженеры и разработчики AI систем используют JN как основную площадку для экспериментов. Обучение модели, тюнинг гиперпараметров, визуализация результатов — весь этот процесс удобно разбить на шаги и документировать. “Ноутбук” стал настолько стандартом в этой области, что многие курсы по машинному обучению (включая знаменитый курс от Stanford) построены вокруг ноутбуков. Когда вы в сотый раз перезапускаете обучение нейросети, меняя один параметр, очень удобно видеть все предыдущие попытки в одном документе, а не разбираться, какой из десятка запущенных скриптов дал нужный результат.
Образование и демонстрация кода
Преподаватели программирования нашли в нем идеальный инструмент для создания интерактивных учебных материалов. Студент видит и код, и его результаты, и пояснения — всё в одном месте. Можно создать ноутбук с «дырками» в коде, которые студенты должны заполнить самостоятельно. А еще Jupyter отлично подходит для живых демонстраций кода на лекциях — преподаватель может писать код, запускать его и показывать результаты в реальном времени, без переключения между редактором, терминалом и программой для презентаций. Если бы у меня в универе преподавали так Python, возможно, я бы не провел столько вечеров в баре, жалуясь на непонятные лекции.
Эксперименты с кодом, тестирование гипотез
JN незаменим, когда вы не знаете заранее, что именно будете писать и какой результат получите. Хотите проверить, как работает новая библиотека? Или тестируете алгоритм на разных входных данных? Jupyter позволяет быстро набросать код, запустить его, увидеть результат, изменить что-то и повторить — всё это без необходимости перезапускать программу целиком. Это как мини-песочница для ваших идей, где можно быстро проверить, работает ли ваша гениальная задумка или это очередной кандидат в мусорную корзину. И да, многие используют его как продвинутый калькулятор — когда вам нужно что-то посчитать или преобразовать, но обычный калькулятор уже не справляется, а писать полноценный скрипт кажется излишним.
В каждой из этих сфер JN не просто используется — он существенно меняет подход к работе, делая её более интерактивной, наглядной и, не побоюсь этого слова, приятной. Что в наше время вечных дедлайнов и выгорания уже само по себе достойно аплодисментов.

Эта диаграмма наглядно показывает, в каких сферах Jupyter Notebook применяется чаще всего. Основные пользователи — аналитики данных, учёные, специалисты по машинному обучению и преподаватели.
Какие языки поддерживает Jupyter Notebook
Хотя имя «Jupyter» намекает на три языка (Ju-Py-teR: Julia, Python, R), реальность гораздо интереснее и разнообразнее. По умолчанию, когда вы устанавливаете “ноутбук”, он приходит с Python-ядром, и не просто так — историческим предком Jupyter был IPython Notebook, специально заточенный под работу с Python. Однако система оказалась настолько удобной, что её быстро адаптировали и для других языков.
В основе этой магии лежит концепция «ядер» (kernels) — отдельных движков, отвечающих за выполнение кода. Ядро — это своего рода переводчик между вашим кодом и “ноутбуком”. Вы пишете код, ядро его выполняет и возвращает результат. Простая схема, которая, как ни странно, работает без особых проблем (что в мире программирования можно считать настоящим чудом).
Вот список некоторых из наиболее популярных языков, с которыми можно работать в Jupyter:
Язык | Как подключается | Особенности |
---|---|---|
Python | По умолчанию | Родной язык, работает «из коробки» |
R | IRkernel | Статистический анализ, мощные графики, пакет тысяч специализированных библиотек |
Julia | IJulia | Высокопроизводительные вычисления, научные расчёты |
JavaScript | IJavaScript | Веб-разработка, визуализации на основе D3.js |
Ruby | IRuby | Быстрая разработка, работа с текстом |
C++ | xeus-cling | Компилируемый код прямо в ноутбуке (да, звучит как оксюморон) |
Haskell | IHaskell | Функциональное программирование |
Scala | Almond | Работа с экосистемой Apache Spark |
Bash | Bash Kernel | Системное администрирование, работа с файлами |
Perl | IPerl | Обработка текста, RegEx-магия |
Установка дополнительных ядер обычно происходит через пакетные менеджеры (pip, conda) и часто требует некоторых дополнительных танцев с бубном и жертвоприношений богам совместимости версий. Но после настройки вы получаете полноценную интерактивную среду для любого из этих языков.
Отдельного упоминания заслуживают так называемые «магические команды» или magic-функции. Это специальные команды, которые начинаются с % (одна строка) или %% (весь блок кода). Они позволяют делать всякие интересные трюки:
# Измерить время выполнения кода %timeit [x**2 for x in range(1000)] # Выполнить системную команду !ls -la # Запустить код на другом языке прямо внутри Python-ноутбука %%bash echo "Привет из bash!"
С помощью магических команд можно даже запускать код на другом языке прямо внутри ячейки, предназначенной для Python. Например, так:
%%R # Этот код будет выполнен через R, а не Python data <- data.frame(x=1:10, y=10:1) plot(data$x, data$y, main="График из R внутри Python-ноутбука")
Это особенно удобно, когда для определённой задачи лучше подходит специфический язык (например, R для статистики или Bash для работы с файловой системой), но вы не хотите переключаться между разными ноутбуками.
Способы запуска
Запуск на локальной машине
Установить на своей машине можно разными способами, и каждый из них имеет свои особенности — как в анекдоте про «с одной стороны… с другой стороны…» Разберемся, как не запутаться в этом великолепии вариантов и выбрать тот, что подходит конкретно вам.

График помогает сравнить способы установки Jupyter Notebook. Anaconda самая простая в установке, но требует больше места. Pip компактный, но потребует ручной установки библиотек. Miniconda — компромиссный вариант.
Установка через pip
Самый базовый способ — использовать стандартный питоновский менеджер пакетов pip. Это как пойти в ближайший супермаркет за молоком — просто, быстро, но выбор ограничен базовой комплектацией.
# Установка Jupyter Notebook pip install notebook # Запуск jupyter notebook
После выполнения второй команды в вашем браузере откроется новая вкладка с локальным сервером “ноутбука”, и вы увидите интерфейс для работы с ноутбуками. Если этого не произошло автоматически (компьютеры, как известно, обожают саботировать наши самые простые действия), просто скопируйте URL-адрес из терминала и вставьте его в браузер.
Этот способ подойдет, если:
- У вас уже установлен и настроен Python.
- Вам нужен только сам “юпитер”, без дополнительных библиотек.
- Вы любите минималистичный подход и контроль над каждым устанавливаемым пакетом.
Но есть и минусы — вам придется самостоятельно устанавливать все библиотеки, которые понадобятся для работы: pandas для обработки данных, matplotlib для визуализации, scikit-learn для машинного обучения и т.д. А это может превратиться в увлекательный квест по решению бесконечных проблем с зависимостями.
Установка через Anaconda
Если pip — это поход в ближайший супермаркет, то Anaconda — это оптовый гипермаркет, где вы покупаете сразу всё необходимое для выживания в апокалипсисе мира данных. Anaconda — это целый дистрибутив для анализа данных, машинного обучения и научных вычислений, который включает Python и более 250 популярных пакетов.
# После установки Anaconda просто запустите jupyter notebook # Или через графический интерфейс Anaconda Navigator
Преимущества этого способа:
- «Всё включено» — основные библиотеки для работы с данными уже предустановлены.
- Встроенный менеджер окружений conda для изоляции проектов.
- Графический интерфейс для управления пакетами и запуска приложений.
- Оптимизированные бинарные пакеты для производительности.
Недостатки:
- Занимает много места на диске (несколько гигабайт).
- Может конфликтовать с существующими установками Python.
- Избыточен, если вам нужен только JN.
Установка через Miniconda
Miniconda — это как «Anaconda Lite»: только Python, менеджер пакетов conda и минимальный набор пакетов. Это компромисс между минимализмом pip и комплексностью полной Anaconda.
# После установки Miniconda conda install jupyter # Запуск jupyter notebook
Этот вариант хорошо подходит, если:
- Вам нужен удобный менеджер пакетов conda.
- Вы хотите экономить место на диске.
- Вы предпочитаете сами выбирать, какие библиотеки устанавливать.
Для новичков я бы рекомендовал начать с Anaconda — она избавит вас от множества головных болей с настройкой окружения, особенно если вы планируете работать с анализом данных. Для более опытных пользователей или тех, кто ценит контроль над своей системой, pip или Miniconda будут более подходящими опциями.
Независимо от выбранного способа установки, запуск будет выглядеть одинаково — вы введете команду jupyter notebook в терминале, и перед вами откроется веб-интерфейс для работы с ноутбуками. Вуаля! Теперь вы готовы творить чудеса интерактивного программирования на своей машине.
И помните, что если вам надоест возиться с локальной установкой или вы не хотите забивать свой компьютер еще одной программой в бесконечной череде инструментов для разработки — всегда есть облачные альтернативы. Но об этом в следующем разделе…
Работа в облаке: Google Colab и аналоги
Если установка и настройка локального окружения кажется вам слишком утомительной (и я вас прекрасно понимаю — иногда хочется просто писать код, а не бороться с зависимостями), то облачные решения могут стать вашим спасением. Они работают по принципу «открыл браузер и поехали» — без установки, настройки и лишних телодвижений.
Google Colab — король облачных ноутбуков
Google Colaboratory (или просто Colab) — это, пожалуй, самый популярный облачный сервис для работы с JN. По сути, это “юпитер” на стероидах от Google с интеграцией в Google Drive и доступом к GPU/TPU.
Работать с Colab до неприличия просто:
- Заходите на colab.research.google.com.
- Авторизуетесь под своим Google-аккаунтом.
- Создаёте новый ноутбук или открываете существующий.
- Пишете код и наслаждаетесь жизнью.
Что особенно приятно — Google Colab позволяет использовать не только CPU, но и GPU/TPU для ускорения вычислений. Это настоящий подарок для тех, кто работает с машинным обучением и нейросетями, но не имеет дома мощной видеокарты. Правда, есть ограничения на время использования бесплатных ускорителей, но для большинства задач их более чем достаточно.
Альтернативы Google Colab
Конечно, Google Colab — не единственный облачный сервис для работы с “ноутбуком”. У него есть ряд достойных конкурентов:
Сервис | Плюсы | Минусы |
---|---|---|
Kaggle Kernels | Доступ к GPU/TPU, интеграция с соревнованиями Kaggle, публичные датасеты | Ориентирован на соревнования по анализу данных, меньше возможностей для общего использования |
Binder | Полностью бесплатный, позволяет запускать репозитории GitHub как интерактивные ноутбуки | Ограниченное время сессии, без сохранения состояния между сессиями |
JupyterHub | Многопользовательский, настраиваемый, можно развернуть на своём сервере | Требует технических знаний для настройки, нужен свой сервер |
Microsoft Azure Notebooks | Интеграция с экосистемой Microsoft, поддержка .NET | Платный после бесплатного периода |
Плюсы и минусы облачных решений
Преимущества:
- Не требуют установки — только браузер и интернет.
- Доступ к вычислительным ресурсам (включая GPU/TPU) без необходимости их покупки.
- Доступ к ноутбукам с любого устройства и места.
- Часто включают интеграцию с облачными хранилищами (Google Drive, GitHub).
- Автоматические бэкапы (в большинстве сервисов).
- Возможность совместной работы над одним ноутбуком.
Недостатки:
- Зависимость от интернет-соединения (отключили интернет — прощай, работа).
- Ограничения бесплатных тарифов (время работы, вычислительные ресурсы).
- Вопросы приватности данных (вы загружаете свои данные на чужие серверы).
- Ограниченный контроль над окружением и установленными библиотеками.
- Сессии могут «умирать» из-за бездействия, что приводит к потере несохранённых переменных.
- Иногда медленнее, чем локальные решения (особенно при работе с большими данными).
Если вы только начинаете изучать Python и анализ данных, я бы рекомендовал начать с Google Colab — он избавит вас от головной боли с настройкой среды и позволит сосредоточиться на изучении самого языка и библиотек. Когда вы почувствуете, что переросли его ограничения, можно будет задуматься о настройке локального окружения.
И помните: настоящие программисты никогда не привязываются к инструментам — они выбирают подходящий инструмент для каждой конкретной задачи. Иногда нужна швейцарская точность локального Jupyter, а иногда — гибкость и доступность облачных решений.
Как устроен интерфейс
Обычному пользователю может показаться, что он просто пишет код и текст в каком-то случайном порядке, но на самом деле всё гораздо интереснее. Ноутбук состоит из отдельных ячеек разных типов, каждая из которых выполняет свою роль в этом интерактивном представлении. Это как конструктор, где детали разных форм и цветов вместе создают нечто большее, чем просто набор блоков.
Code (ячейки с кодом)
Это основной строительный блок — ячейки, в которых вы пишете исполняемый код. Они отличаются от обычного текстового редактора тем, что:
# Пример ячейки с кодом import numpy as np import matplotlib.pyplot as plt x = np.linspace(0, 10, 100) y = np.sin(x) plt.plot(x, y) plt.title("Синусоида") plt.show()
После выполнения такой ячейки (нажатием Shift+Enter или кнопки Run) вы сразу увидите результат — в данном случае, график синусоиды. Причём в отличие от обычного скрипта, где вывод и код разделены, в “юпитере” результат появляется прямо под ячейкой с кодом, создавая наглядную связь между действием и результатом.
Интересная особенность: все переменные, определённые в одной ячейке, доступны во всех последующих. Это как глобальное пространство имён, которое сохраняется между запусками разных частей кода. Удобно? Безусловно. Может привести к запутанным ошибкам из-за переопределения переменных? Ещё как!
Markdown (форматированный текст)
Ячейки Markdown превращают обычный текст в красиво отформатированный контент. Это ваш инструмент для документирования, объяснения и создания повествования вокруг кода:
# Заголовок первого уровня ## Заголовок второго уровня Обычный текст с **жирным шрифтом** и *курсивом*. Математические формулы: $E = mc^2$ - Списки - Очень - Просты 1. Нумерованные 2. Тоже 3. Работают > Даже цитаты есть
После выполнения такой ячейки (также Shift+Enter) текст преобразуется в форматированный документ с заголовками, списками и даже математическими формулами (да, Jupyter поддерживает LaTeX-подобный синтаксис для формул). Это позволяет создавать профессионально выглядящие отчёты и пояснения прямо внутри ноутбука.
Raw (сырой ввод)
Самый малоизвестный и редко используемый тип ячеек. Они содержат «сырой» текст, который не интерпретируется как код и не форматируется как Markdown. Основное назначение — подготовка содержимого для экспорта в другие форматы.
Это сырая ячейка.
Она не выполняется как код.
И не форматируется как Markdown.
Она просто… существует.
Raw-ячейки обычно используются в специфических сценариях:
- Когда нужно включить в ноутбук контент, который будет интерпретирован только при конвертации в другой формат (например, LaTeX при экспорте в PDF).
- Для хранения метаданных или конфигурационной информации.
- Чтобы временно «отключить» ячейку с кодом или Markdown, не удаляя её.
Большинство пользователей редко сталкивается с необходимостью использовать Raw-ячейки, но знать о их существовании полезно — иногда они могут оказаться именно тем, что нужно для решения нестандартной задачи.
Тип ячейки можно изменить в любой момент через выпадающее меню или с помощью горячих клавиш (например, Y для кода, M для Markdown). Этот гибкий подход позволяет создавать документы, в которых код и пояснения к нему органично сосуществуют, образуя целостное повествование — от постановки задачи до визуализации результатов и выводов.
Такая структура делает “юпитер”идеальным не только для исследования данных, но и для образования, документирования и совместной работы. Как говорится, код говорит о том, что делает программа, а комментарии — почему она это делает. В “юпитере” у вас есть все инструменты, чтобы объяснить и то, и другое.
Элемент интерфейса | Описание |
Верхняя панель меню | Основные команды: File, Edit, View, Insert, Cell, Kernel, Help. Управление файлами, настройка ячеек и работы ядра. |
Кнопки запуска/остановки ячеек | Кнопки для запуска ▶, остановки ■ и перезапуска ↻ выполнения кода. Управляют ходом выполнения блокнота. |
Выбор ядра (Kernel) | Выбор используемого интерпретатора (например, Python 3). Позволяет переключаться между языками, если доступно несколько ядер. |
Markdown-ячейка | Текстовая ячейка для заголовков, описаний, формул и форматированного текста. Поддерживает Markdown-разметку. |
Code-ячейка | Ячейка для выполнения кода (обычно на Python, но могут быть и другие языки). Результат отображается прямо под ячейкой. |
Вывод результата (Output) | Отображает результаты выполнения кода: текст, таблицы, графики и визуализации. |
Основные элементы интерфейса
Интерфейс выглядит просто, но это та самая простота, за которой скрывается впечатляющая мощь. Давайте разберемся, что к чему в этом инструменте, который превратил процесс анализа данных из скучного написания кода в интерактивное исследование.
Когда вы запускаете JN, перед вами открывается веб-интерфейс, который сочетает в себе элементы текстового редактора, среды разработки и инструмента для визуализации. Вот из чего состоит основной интерфейс:
- Панель меню — содержит традиционные пункты File, Edit, View, но также и специфичные опции, такие как Cell (работа с ячейками) и Kernel (управление ядром интерпретатора).
- Панель инструментов — набор кнопок для наиболее частых действий:
- Кнопки запуска/остановки ячеек (▶, ■) — управляют выполнением кода.
- Кнопка перезагрузки ядра (↻) — если что-то пошло не так, всегда можно перезапустить интерпретатор.
- Выпадающий список типов ячеек — для переключения между Code, Markdown и Raw.
- Выбор ядра — указывает, какой язык используется (Python, R, Julia и т.д.).
- Рабочая область — основное пространство, где располагаются ячейки с кодом и текстом. Каждая ячейка имеет:
- Область ввода — для написания кода или текста.
- Область вывода — появляется после выполнения, показывает результаты работы кода.
- Метку выполнения [In [n]] — показывает порядковый номер выполнения.
- Индикатор состояния — небольшой кружок в правом верхнем углу, который показывает, занято ли ядро выполнением кода (если да, то кружок заполнен).
Одна из приятных особенностей — возможность использовать сочетания клавиш для ускорения работы. Например:
- Shift+Enter — выполнить текущую ячейку и перейти к следующей.
- Ctrl+Enter — выполнить текущую ячейку без перехода.
- Alt+Enter — выполнить ячейку и создать новую под ней.
- A/B — создать новую ячейку над/под текущей.
- DD — удалить текущую ячейку (да, именно дважды D).
- M/Y — переключить ячейку в режим Markdown/Code.
Навигация между ячейками осуществляется с помощью клавиш со стрелками или мыши. Каждая ячейка может находиться в двух режимах: режим редактирования (когда вы вводите текст) и режим команд (когда вы можете использовать сочетания клавиш для управления ноутбуком). Для переключения между ними используется клавиша Esc (выход из режима редактирования) или Enter (вход в режим редактирования).
“Юпитер” хранит историю выполнения ячеек, что позволяет видеть не только текущие результаты, но и предыдущие. Это невероятно полезно при отладке и экспериментах, когда нужно сравнить результаты разных подходов.
На изображении выше показаны основные элементы интерфейса с пояснениями. Как видите, несмотря на внешнюю простоту, Jupyter предоставляет все необходимые инструменты для комфортной работы с кодом и данными. Его интерфейс интуитивно понятен, что позволяет сосредоточиться на решении задач, а не на борьбе со средой разработки.
Примеры работы в JN
Выполнение простого кода
Чтобы понять, почему он стал настолько популярным инструментом, давайте рассмотрим, как в нём работать с кодом. Начнём с чего-то простого — базовых операций и вычислений в Python.
Допустим, мы хотим проверить, как работает цикл for в Python, или рассчитать какие-то значения. В “юпитере” это делается максимально наглядно:
# Создадим простой цикл for i in range(5): print(f"Число {i}, его квадрат: {i**2}, его куб: {i**3}")
Когда вы запускаете эту ячейку (Shift+Enter), прямо под ней появляется результат:
Число 0, его квадрат: 0, его куб: 0 Число 1, его квадрат: 1, его куб: 1 Число 2, его квадрат: 4, его куб: 8 Число 3, его квадрат: 9, его куб: 27 Число 4, его квадрат: 16, его куб: 64
Заметьте, что вам не нужно заранее придумывать, как и куда сохранять вывод программы — Jupyter автоматически показывает его под ячейкой. А если результат вас не устраивает, вы просто меняете код и запускаете ячейку снова.
Давайте попробуем что-то посложнее — например, работу со списками и функциями:
# Создадим список и функцию для фильтрации numbers = [10, 15, 21, 33, 42, 55, 66, 78] def is_even(num): return num % 2 == 0 # Отфильтруем только чётные числа even_numbers = list(filter(is_even, numbers)) print(f"Исходный список: {numbers}") print(f"Только чётные: {even_numbers}") # Посчитаем сумму и среднее значение total = sum(numbers) average = total / len(numbers) print(f"Сумма всех чисел: {total}") print(f"Среднее значение: {average:.2f}")
И снова, после выполнения ячейки, мы сразу видим результат:
Исходный список: [10, 15, 21, 33, 42, 55, 66, 78] Только чётные: [10, 42, 66, 78] Сумма всех чисел: 320 Среднее значение: 40.00
Это настоящее волшебство для тех, кто привык к классическому процессу «написать код → сохранить файл → запустить в терминале → посмотреть вывод → внести изменения → повторить всё сначала». В “ноутбуке” всё происходит мгновенно, что особенно ценно при исследовательском программировании, когда вы не знаете заранее, какой именно код вам понадобится.
Важно понимать, что переменные, определённые в одной ячейке, доступны во всех последующих. Это позволяет разбивать логику программы на маленькие, удобные для понимания кусочки. Например, мы можем продолжить работу с нашими числами в новой ячейке:
# Продолжаем работу с даннными из предыдущей ячейки max_value = max(numbers) min_value = min(numbers) range_value = max_value - min_value print(f"Максимальное значение: {max_value}") print(f"Минимальное значение: {min_value}") print(f"Размах (разница между max и min): {range_value}")
Результат:
Максимальное значение: 78 Минимальное значение: 10 Размах (разница между max и min): 68
Такой интерактивный подход к программированию существенно снижает барьер входа для новичков и ускоряет процесс разработки для профессионалов. Вы можете сразу видеть результаты каждого шага, что делает отладку и экспериментирование гораздо более эффективными.
Визуализация данных
Одна из главных причин популярности — это возможность быстро и наглядно визуализировать данные. Когда вы анализируете информацию, график часто говорит больше, чем тысяча строк с цифрами. Давайте рассмотрим, как в “юпитере” создавать визуализации с помощью популярных библиотек Pandas и Matplotlib.
Предположим, у нас есть данные о продажах магазина за полгода, и мы хотим их проанализировать. Вот как это может выглядеть:
import pandas as pd import matplotlib.pyplot as plt # Создадим DataFrame с данными о продажах по месяцам data = {'Месяц': ['Янв', 'Фев', 'Мар', 'Апр', 'Май', 'Июн'], 'Продажи': [150, 200, 180, 220, 260, 290]} df = pd.DataFrame(data) # Выведем наши данные в виде таблицы df
После выполнения этой ячейки Jupyter автоматически отобразит таблицу с нашими данными:
Месяц Продажи 0 Янв 150 1 Фев 200 2 Мар 180 3 Апр 220 4 Май 260 5 Июн 290
Заметьте, что нам даже не пришлось писать print(df) — “ноутбук” сам понимает, что нужно отобразить DataFrame. Это одна из тех маленьких, но приятных особенностей, которые экономят время и делают код чище.
Теперь давайте визуализируем эти данные с помощью графика:
# Создадим столбчатую диаграмму plt.figure(figsize=(10, 5)) # Задаём размер графика df.plot(kind='bar', x='Месяц', y='Продажи', color='skyblue') plt.title('Продажи по месяцам') plt.ylabel('Объем продаж (тыс. руб.)') plt.grid(axis='y', linestyle='--', alpha=0.7) plt.xticks(rotation=0) # Горизонтальные подписи по оси X plt.tight_layout() # Автоматическая компоновка plt.show()
После выполнения этой ячейки прямо под ней появится график в виде столбчатой диаграммы. Это невероятно удобно — вы видите и код, и результат его выполнения в одном месте.
А что, если нам нужно представить данные по-другому, например, в виде линейного графика с отметками точек? Просто добавим ещё одну ячейку:
# Создадим линейный график с маркерами plt.figure(figsize=(10, 5)) plt.plot(df['Месяц'], df['Продажи'], marker='o', linestyle='-', linewidth=2, color='green') plt.title('Динамика продаж за первое полугодие') plt.ylabel('Объем продаж (тыс. руб.)') plt.grid(True, alpha=0.3) plt.tight_layout() plt.show()
И снова, после выполнения, мы сразу видим новый график. Никаких дополнительных действий, никаких переключений между окнами или файлами.
А теперь представьте, что нам нужен более сложный анализ. Например, рассчитаем ежемесячный прирост продаж и отобразим его вместе с общими продажами:
# Рассчитаем ежемесячный прирост df['Прирост'] = df['Продажи'].diff().fillna(0) # Создадим комбинированный график fig, ax1 = plt.subplots(figsize=(12, 6)) # График общих продаж (левая ось Y) ax1.set_xlabel('Месяц') ax1.set_ylabel('Продажи (тыс. руб.)', color='blue') ax1.plot(df['Месяц'], df['Продажи'], 'o-', color='blue', linewidth=2) ax1.tick_params(axis='y', labelcolor='blue') # Создадим вторую ось Y для прироста ax2 = ax1.twinx() ax2.set_ylabel('Прирост (тыс. руб.)', color='red') ax2.bar(df['Месяц'], df['Прирост'], alpha=0.3, color='red') ax2.tick_params(axis='y', labelcolor='red') plt.title('Продажи и ежемесячный прирост') plt.grid(False) plt.tight_layout() plt.show()
В результате мы получим комбинированный график с двумя осями Y — одна для общих продаж (линия), другая для прироста (столбцы). И все это в рамках одного ноутбука, где каждый шаг нашего анализа задокументирован и может быть изменен в любой момент.
Возможности визуализации практически безграничны. Помимо Matplotlib, можно использовать более продвинутые библиотеки, такие как Seaborn (для статистических графиков), Plotly (для интерактивных визуализаций) или Folium (для карт). И все они будут отображаться прямо в ноутбуке, делая ваш анализ данных не только продуктивным, но и визуально впечатляющим.
Благодаря такому интерактивному подходу, “юпитер” превращает анализ данных из рутинной задачи в увлекательное исследование, где каждый шаг сопровождается мгновенной визуальной обратной связью.
Полезные советы и расширения
Базовая функциональность уже впечатляет, но это только вершина айсберга. Настоящие профи (а вы ведь стремитесь стать таковым, верно?) используют расширения и магические команды, превращающие этот инструмент в настоящий комбайн для анализа данных и программирования. Давайте погрузимся в мир лайфхаков, которые сделают вашу работу еще более эффективной.
Magic-команды — настоящее колдовство в коде
Magic-команды — это специальные инструкции, которые начинаются с символов % (для однострочных команд) или %% (для многострочных). Они добавляют функциональность, недоступную в обычном Python. Вот несколько особенно полезных:
# Измерить время выполнения кода %timeit [x**2 for x in range(1000)] # Посмотреть все доступные переменные в памяти %who # Загрузить внешний файл с кодом %load script.py # Сохранить ячейку в файл %%writefile example.py def hello(): print("Hello, World!") # Выполнить код на другом языке %%bash echo "Привет из терминала!" ls -la
Особенно полезна команда %matplotlib inline, которая обеспечивает отображение графиков прямо в ноутбуке без необходимости вызывать plt.show(). А если хотите интерактивные графики, попробуйте %matplotlib notebook.
Расширения nbextensions — стероиды для ваших ноутбуков
Jupyter Notebook Extensions (nbextensions) — это дополнительные модули, расширяющие возможности стандартного ”юпитера”. Их установка проста:
pip install jupyter_contrib_nbextensions jupyter contrib nbextension install --user
После установки в интерфейсе появится новая вкладка «Nbextensions», где можно включать и отключать расширения по вашему вкусу.
Топ-5 незаменимых расширений
- Table of Contents (2) — автоматически создает оглавление на основе заголовков в Markdown-ячейках. Незаменимо для длинных ноутбуков.
- Collapsible Headings — позволяет сворачивать разделы ноутбука, чтобы фокусироваться только на нужной части. Спасение, когда ваш ноутбук разросся до сотен ячеек.
- ExecuteTime — показывает, когда и как долго выполнялась каждая ячейка. Бесценно для оптимизации медленного кода.
- Variable Inspector — интерактивный просмотрщик переменных, похожий на тот, что есть в MATLAB или RStudio. Забудьте о бесконечных print(var).
- Code Prettify — автоматически форматирует ваш код по стандартам PEP 8. Потому что жизнь слишком коротка, чтобы вручную выравнивать отступы.
Настройка внешнего вида
Если стандартный серо-синий интерфейс навевает тоску, его можно изменить. Есть несколько способов:
- Темы для Jupyter — установите пакет jupyterthemes и выберите понравившуюся тему:
pip install jupyterthemes jt -t monokai -f fira -fs 12
- Пользовательский CSS — создайте файл ~/.jupyter/custom/custom.css и добавьте свои стили.
- Расширения для стилизации — например, «Zenmode» убирает все лишнее из интерфейса, когда вам нужно сосредоточиться.
Автосохранение — чтобы ваши инсайты не пропали
Потеря несохраненных данных — классическая трагедия программиста. “Ноутбук” имеет встроенную функцию автосохранения, но вы можете настроить ее под себя. В меню File → Checkpoint выберите Save and Checkpoint, чтобы сохранить текущее состояние, к которому можно будет вернуться.
Для более надежной защиты настройте интервал автосохранения:
%config AutoSaveNotebookWidget.interval = 60 # Автосохранение каждую минуту
Версионный контроль для ноутбуков
Стандартный формат .ipynb не очень дружелюбен к системам контроля версий из-за включенных в него выходных данных и метаданных. Существует несколько решений:
- Используйте nbdime — инструмент для визуального сравнения и слияния ноутбуков.
pip install nbdime nbdime config-git --enable
- Очищайте вывод перед коммитом — расширение «Clear All Outputs» поможет в этом.
- Конвертируйте в .py для Git — используйте nbconvert для создания Python-скриптов из ноутбуков:
jupyter nbconvert --to script your_notebook.ipynb
Эти советы и расширения превратят ваш опыт работы с “юпитером” из просто хорошего в поистине восхитительный. Потратьте немного времени на настройку своей рабочей среды, и она отблагодарит вас повышенной продуктивностью и меньшим количеством головной боли. А в мире анализа данных и программирования это дорогого стоит.

Какие возможности можно подключить для расширения функционала.
Вопросы безопасности при работе с Jupyter Notebook
Знаете, есть такая закономерность в мире технологий: чем удобнее инструмент, тем больше потенциальных дыр в безопасности он создает. Jupyter Notebook — не исключение. Его интерактивность и доступность через веб-интерфейс, которые делают его таким привлекательным для работы, одновременно создают риски, о которых многие пользователи даже не задумываются.
Основные проблемы безопасности
Главная уязвимость Jupyter — это его архитектура. По сути, ноутбук — это веб-сервер, который выполняет произвольный код на вашей машине. В локальной установке это не так страшно (хотя всё равно следует быть осторожным), но когда ноутбук запускается на сервере или в облаке, возникают серьезные риски:
- Несанкционированный доступ — по умолчанию Jupyter не требует пароля и может быть доступен любому, кто знает адрес сервера.
- Выполнение произвольного кода — если кто-то получит доступ к вашему ноутбуку, он сможет выполнить любой код с вашими привилегиями, включая удаление файлов, установку вредоносного ПО или кражу данных.
- Утечка конфиденциальной информации — токены API, пароли и другие секреты, хранящиеся в ноутбуке, могут быть легко скомпрометированы.
- Исполнение ненадежного кода — загрузка ноутбуков из непроверенных источников подобна запуску .exe файла, присланного по электронной почте. В ячейках может скрываться вредоносный код.
Настройка базовой защиты
Если вы используете Jupyter на своём локальном компьютере и не открываете доступ в сеть, риск минимален. Но как только вы разворачиваете ноутбук на сервере или предоставляете доступ извне, безопасность становится критически важной.
Установка пароля:
jupyter notebook password
Эта команда предложит вам создать пароль для доступа к ноутбуку. Хеш пароля будет сохранен в конфигурационном файле jupyter_notebook_config.py.
Настройка HTTPS:
Для защиты передаваемых данных (особенно пароля) стоит настроить HTTPS:
# В файле jupyter_notebook_config.py c.NotebookApp.certfile = '/path/to/your/cert.pem' c.NotebookApp.keyfile = '/path/to/your/key.key'
Ограничение IP-адресов:
# Разрешить подключения только с локального адреса c.NotebookApp.ip = '127.0.0.1'
Безопасность в облачных сервисах
Если вы используете Google Colab или аналогичные сервисы, помните:
- Данные не приватны — технически, провайдер сервиса имеет доступ к вашему коду и данным.
- Ограниченный контроль — вы не можете полностью настроить окружение под себя.
- Временные ограничения — сессии часто имеют лимит по времени, что может привести к потере несохраненных результатов.
- Публичный доступ по умолчанию — в некоторых сервисах ноутбуки могут быть публично доступны, если не настроено иначе.
Лучшие практики безопасности
- Никогда не храните секреты непосредственно в коде — используйте переменные окружения или специальные сервисы для хранения секретов.
- Проверяйте ноутбуки перед запуском — просмотрите содержимое ноутбуков из непроверенных источников перед их выполнением.
- Регулярно обновляйте Jupyter и его компоненты — уязвимости находят и исправляют постоянно.
- Используйте изолированные окружения — запускайте Jupyter в виртуальном окружении или контейнере, чтобы ограничить потенциальный ущерб.
- Очищайте вывод перед публикацией — убедитесь, что в публикуемых ноутбуках нет конфиденциальной информации в выводе ячеек.
- Применяйте принцип наименьших привилегий — запускайте Jupyter от имени пользователя с ограниченными правами.
- Создавайте резервные копии — регулярно сохраняйте важные ноутбуки и данные.
Безопасность — это не однократное действие, а процесс. Даже если вы сейчас работаете только локально, привычка думать о безопасности пригодится, когда вы перейдете к более серьезным проектам или командной работе. Как и во многих аспектах IT, лучше потратить немного времени на превентивные меры, чем потом разбираться с последствиями компрометации.
В конце концов, Jupyter Notebook — всего лишь инструмент. И как любой инструмент, он может быть как полезен, так и опасен, в зависимости от того, как вы им пользуетесь. Будьте бдительны, и ваш опыт работы с Jupyter будет не только продуктивным, но и безопасным.
Заключение
Итак, подведем итоги нашего погружения в мир Jupyter Notebook — инструмента, который изменил подход к программированию, анализу данных и научным исследованиям. Как видите, это не просто очередная среда разработки, а настоящий мост между кодом и человеческим пониманием.
- Генераторы экономят память при работе с большими объёмами данных. Они создают элементы по запросу, а не хранят всё в памяти — это особенно полезно при обработке файлов, потоков или бесконечных последовательностей.
- С генераторами проще писать эффективный и читаемый код. Генераторы позволяют строить конвейеры обработки данных, избегая громоздких конструкций и сохраняя чистоту архитектуры.
- Генераторы имеют ограничения, о которых нужно помнить. Их нельзя перемотать назад, они одноразовые и не дают произвольного доступа по индексу.
- Понимание работы генераторов открывает путь к асинхронному программированию. Именно на их основе работают корутины и многие механизмы async/await в Python.
- Генераторы полезны как для начинающих, так и для опытных разработчиков. Новички учатся писать более оптимальный код, а профессионалы используют их для создания сложных потоков данных и ETL-процессов.
И хотя начать работу с Jupyter можно буквально за пару минут (особенно используя облачные сервисы вроде Google Colab), по-настоящему раскрыть его потенциал вы сможете, постепенно открывая для себя дополнительные возможности, расширения и приёмы работы.
Для тех, кто хочет углубить свои знания о Jupyter Notebook, рекомендую обратить внимание на следующие ресурсы:
- Официальная документация Jupyter — исчерпывающий источник информации о всех возможностях платформы.
- Project Jupyter на GitHub — здесь можно найти исходный код, примеры и сообщить о проблемах.
Хотите научиться эффективно использовать Jupyter Notebook? Ознакомьтесь с нашей подборкой курсов по системной аналитике — там есть практические задания в ноутбуках.
Рекомендуем посмотреть курсы по системной аналитике
Курс | Школа | Цена | Рассрочка | Длительность | Дата начала | Ссылка на курс |
---|---|---|---|---|---|---|
Системный аналитик с нуля до PRO
|
Eduson Academy
65 отзывов
|
Цена
Ещё -13% по промокоду
103 104 ₽
257 760 ₽
|
От
4 296 ₽/мес
10 740 ₽/мес
|
Длительность
6 месяцев
|
Старт
в любое время
|
Ссылка на курс |
Курс Системный и бизнес-анализ в разработке ПО. Интенсив
|
Level UP
35 отзывов
|
Цена
75 000 ₽
|
От
18 750 ₽/мес
|
Длительность
1 месяц
|
Старт
25 июля
|
Ссылка на курс |
Системный аналитик PRO
|
Нетология
43 отзыва
|
Цена
с промокодом kursy-online
84 000 ₽
140 000 ₽
|
От
3 500 ₽/мес
Рассрочка на 2 года.
|
Длительность
10 месяцев
|
Старт
13 августа
|
Ссылка на курс |
Аналитик данных с нуля
|
Skillbox
143 отзыва
|
Цена
Ещё -20% по промокоду
121 018 ₽
242 036 ₽
|
От
5 501 ₽/мес
Без переплат на 22 месяца.
|
Длительность
6 месяцев
|
Старт
22 июля
|
Ссылка на курс |

JavaScript и десятки IDE — какую выбрать, чтобы не пожалеть?
Ищете идеальную среду для JavaScript, но путаетесь в выборе? Мы сравнили VS Code, WebStorm, Sublime и другие IDE, чтобы вам не пришлось тратить часы на тесты.

История анимации: от театра теней до Pixar
Какие технологии стали ключевыми в развитии анимации? Узнайте, как механические устройства прошлого повлияли на современные нейросети и искусственный интеллект.

PHP удерживает 75% рынка веб-разработки в 2025 году
В мире веб-разработки, где технологии меняются с головокружительной скоростью, PHP продолжает удерживать свои позиции. Несмотря на периодические заявления о «смерти» этого языка, статистика говорит об обратном.

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