Знайомство з Jupyter Notebook та JupyterLab
Знайомство з Jupyter Notebook та JupyterLab
Проблема, яку ви ще не знали, що маєте
Уявіть таке завдання: у вас є CSV-файл з даними про 50 000 продажів за рік. Потрібно:
- Завантажити дані
- Подивитися, як вони виглядають
- Знайти середню ціну товару
- Побудувати графік продажів по місяцях
- Зрозуміти, які товари продаються найгірше
Ви пишете Python-скрипт. Запускаєте. Бачите помилку на кроці 3 — опечатка в назві стовпця. Виправляєте. Запускаєте знову — і весь код виконується з самого початку. Завантаження даних, перевірка, обчислення — все заново. Графік відкрився в окремому вікні, закрився... де він тепер?
А тепер уявіть інший підхід: ви виконуєте кожен крок окремо, бачите результат відразу під кодом, графік вбудований прямо в документ, і якщо щось не так — виправляєте лише той один крок, не перезапускаючи все.
Це і є Jupyter Notebook.
Аналогія: звичайний
.pyфайл — це як книга, яку можна читати лише від початку до кінця. Якщо хочете знайти щось на сторінці 147, доведеться перегортати всі 146 сторінок перед нею. Jupyter Notebook — це інтерактивний зошит, де кожен абзац можна виконати незалежно, побачити результат, виправити і продовжити далі.
Що таке Jupyter Notebook
Jupyter Notebook — це відкрите середовище для інтерактивних обчислень. Назва походить від трьох мов програмування: Julia, Python, R — хоча сьогодні він підтримує десятки мов.
Файл нотбука має розширення .ipynb (IPython Notebook). Це звичайний JSON-файл, де зберігаються:
- Вміст кожної комірки (код або текст)
- Результати виконання коду
- Метадані (версія Python, ядро)
.ipynb файл можна відкрити у будь-якому текстовому редакторі — там буде JSON. Але для нормальної роботи потрібен Jupyter — він рендерить комірки, виконує код і показує результати в зручному вигляді.JupyterLab — це сучасний інтерфейс для роботи з нотбуками. Якщо Jupyter Notebook — це простий зошит, то JupyterLab — це повноцінне IDE: кілька нотбуків в окремих вкладках, файловий менеджер збоку, термінал, перегляд CSV та зображень.
Jupyter Notebook (класичний)
jupyter notebook.JupyterLab (сучасний)
jupyter lab.Встановлення та запуск JupyterLab
Перш ніж встановлювати, переконайтесь, що у вас є Python 3.8 або новіший. Перевірте у терміналі:
python --version
# або
python3 --version
Якщо Python встановлено, встановлюємо JupyterLab. Оберіть спосіб відповідно до вашого інструменту керування пакетами:
pip install jupyterlab
uv pip install jupyterlab
poetry add jupyterlab
Після встановлення запускайте JupyterLab:
jupyter lab
jupyter lab
poetry run jupyter lab
Після запуску браузер відкриється автоматично на адресі http://localhost:8888/lab. Якщо не відкрився — скопіюйте адресу з терміналу і вставте вручну.
Анатомія інтерфейсу JupyterLab
Після запуску ви побачите інтерфейс, який складається з кількох зон:
Ліва панель — файловий браузер
jupyter lab). Тут можна відкрити існуючий .ipynb або створити новий.Центральна зона — робоча область
Меню та панель інструментів
Щоб створити новий нотбук, натисніть на кнопку + у лівій панелі або виберіть File → New → Notebook. Система запитає, яке ядро (kernel) використовувати — обирайте Python 3.
Нотбуки та комірки: основна одиниця роботи
Нотбук складається з комірок (cells). Комірка — це окремий блок, який можна виконати незалежно від інших. Саме в цьому і полягає головна перевага Jupyter: виконуйте кроки один за одним, бачте результат відразу.
Два типи комірок
Існує два основних типи комірок:
Code (Код)
Містить Python-код. Після виконання результат з'являється одразу під коміркою. Зліва від комірки з'являється номер виконання: [1]:, [2]: тощо.
# Це комірка коду
x = 10 + 5
print(x)
# ↓ Результат з'являється тут ↓
# 15
Markdown (Текст)
Містить текст у форматі Markdown. Після виконання рендериться як відформатований текст: заголовки, списки, жирний, курсив, посилання, формули LaTeX.
## Мій аналіз
Тут я описую **що** я роблю і **чому**.
- Крок 1: завантаження даних
- Крок 2: очищення
Аналогія: уявіть, що ви ведете лабораторний журнал. Комірка Markdown — це ваші нотатки та пояснення («сьогодні я досліджую вплив температури на...»). Комірка коду — це сам експеримент («нагріваємо до 100°C і вимірюємо»). І те, і те в одному місці, одне за одним.
Нумерація та порядок виконання
Зліва від кожної виконаної комірки коду ви побачите [n]: де n — порядковий номер виконання. Це важлива деталь.
Якщо ви виконали комірки у такому порядку:
[1]: x = 10
[2]: y = 20
[3]: print(x + y)
А потім повернулись і виконали першу комірку знову — вона стане [4]:. Значення x оновиться. Але print(x + y) залишиться з результатом [3] — старим значенням, поки ви не виконаєте її ще раз.
Ядро (Kernel): мозок нотбука
Ядро (kernel) — це процес Python, який виконує ваш код. Ядро «пам'ятає» всі змінні та функції, що ви оголосили під час сесії.
Стан ядра відображається у верхньому правому куті:
- Порожнє коло — ядро вільне, готове виконувати код
- Крапки/завантаження — ядро зайняте, виконує код
- Поруч з номером комірки:
[*]:— ця комірка зараз виконується або в черзі
[*]: постійно. Зупинити виконання: Kernel → Interrupt Kernel або кнопка ■ на панелі інструментів.Два режими роботи: Edit і Command
Jupyter має два режими роботи — це важливо зрозуміти, щоб ефективно користуватися гарячими клавішами.
Edit Mode (Режим редагування)
Command Mode (Режим команд)
Аналогія: Edit mode — це коли ви пишете текст у документі Word. Command mode — це коли ви у Word виділили цілий абзац і збираєтесь його перемістити або видалити. В одному режимі ви редагуєте вміст, у другому — керуєте структурою.
Гарячі клавіші: швидкість роботи
Знання гарячих клавіш перетворює роботу з Jupyter із клопіткої на зручну. Ось найважливіші:
Клавіші, що працюють в обох режимах
| Клавіша | Дія |
|---|---|
| Shift + Enter | Виконати комірку і перейти до наступної (якщо наступної немає — створити нову) |
| Ctrl + Enter | Виконати комірку і залишитись у ній |
| Alt + Enter | Виконати комірку і додати нову знизу |
Клавіші Command Mode (після Esc)
| Клавіша | Дія |
|---|---|
| A | Додати нову комірку вище (Above) поточної |
| B | Додати нову комірку нижче (Below) поточної |
| D D | Видалити поточну комірку (натиснути D двічі) |
| M | Змінити тип комірки на Markdown |
| Y | Змінити тип комірки на Code |
| Z | Скасувати останню операцію над коміркою |
| ↑ / ↓ | Переміщення між комірками |
| Shift + ↑/↓ | Виділити кілька комірок |
B, ніж тягнутись до кнопки «+» на панелі.Markdown-комірки: документуйте свій аналіз
Одна з найбільших переваг Jupyter — можливість поєднувати код і пояснення в одному місці. Markdown-комірки підтримують весь стандартний Markdown-синтаксис.
Основний синтаксис Markdown у Jupyter
# Заголовок першого рівня
## Заголовок другого рівня
**Жирний текст**, _курсив_, `inline код`
- Маркований список
- Ще один пункт
1. Нумерований список
2. Крок другий
[Посилання](https://example.com)
| Стовпець 1 | Стовпець 2 |
| :--------- | :--------- |
| Значення 1 | Значення 2 |
Математичні формули (LaTeX)
Jupyter підтримує рендеринг математичних формул через LaTeX:
Вбудована формула: $E = mc^2$
Блокова формула:
$$
\hat{y} = w_0 + w_1 x_1 + w_2 x_2
$$
Це особливо корисно в статтях про машинне навчання — формули рендеряться красиво прямо в нотбуці.
$$...$$. Коли будемо проходити лінійну регресію в Модулі 3, ви навчитесь записувати формули акуратно прямо в нотбуці. Зараз просто знайте, що це можливо.Корисні прийоми та підказки
Автодоповнення коду
У комірці коду натисніть Tab після початку назви змінної або функції — Jupyter запропонує варіанти. Наприклад: pri → Tab → print.
Довідка по функції
Введіть назву функції зі знаком питання та виконайте комірку:
print?
Або поставте курсор на назву функції і натисніть Shift + Tab — з'явиться коротка довідка.
Магічні команди (Magic Commands)
Jupyter має спеціальні команди, що починаються з % або %%. Ось найбільш корисні:
# Виміряти час виконання рядка коду
%time sum(range(1_000_000))
# Виміряти час виконання всієї комірки
%%time
total = 0
for i in range(1_000_000):
total += i
# Показати всі змінні у поточній сесії
%who
# Показати список усіх магічних команд
%lsmagic
Перезапуск ядра
Якщо щось пішло не так — змінні «засмітились», код веде себе несподівано — перезапустіть ядро:
Kernel → Restart Kernel — скидає всі змінні, зберігає вміст комірок.
Kernel → Restart Kernel and Run All Cells — перезапускає і виконує всі комірки зверху вниз. Використовуйте, коли хочете перевірити, що нотбук працює «з чистого аркуша».
Практика
Створіть новий нотбук (File → New → Notebook, оберіть Python 3).
Комірка 1 (Code):
print("Hello, AI!")
Виконайте: Shift + Enter. Переконайтесь, що бачите вивід під коміркою.
Комірка 2 (Code):
x = 42
course = "AI з Python"
print(f"Змінна x = {x}")
print(f"Курс: {course}")
Виконайте. Зверніть увагу на номери [1]:, [2]:.
Комірка 3 (Markdown — переключіть клавішею M у Command mode):
## Мій перший нотбук
Це **Markdown**-комірка. Тут я можу писати пояснення:
- Дата: сьогодні
- Мета: познайомитись з Jupyter
- Результат: все працює! ✅
Виконайте. Побачите відформатований текст замість сирого Markdown.
Створіть нотбук, що імітує справжній аналіз даних. Структура нотбука:
Комірка 1 (Markdown):
# Аналіз: обчислення статистики оцінок
Мета: обчислити середню, мінімальну та максимальну оцінку групи студентів.
Комірка 2 (Code):
# Дані: оцінки 10 студентів
grades = [85, 92, 78, 95, 88, 70, 91, 83, 77, 89]
print(f"Кількість студентів: {len(grades)}")
print(f"Оцінки: {grades}")
Комірка 3 (Code):
# Обчислення статистики
average = sum(grades) / len(grades)
minimum = min(grades)
maximum = max(grades)
print(f"Середня оцінка: {average:.1f}")
print(f"Мінімальна: {minimum}")
print(f"Максимальна: {maximum}")
Комірка 4 (Code):
# Фільтрація: хто отримав A (90+)?
excellent = [g for g in grades if g >= 90]
print(f"Відмінники (90+): {len(excellent)} студентів")
print(f"Їхні оцінки: {excellent}")
Комірка 5 (Markdown):
## Висновок
Середня оцінка групи — `{average}`.
X студентів отримали відмінно (90 і вище).
Після виконання спробуйте:
- Змінити список
grades— додайте свою оцінку - Виконайте лише комірки 2–4, не торкаючись комірки 1
- Перезапустіть ядро та виконайте всі комірки зверху вниз
Резюме
Jupyter Notebook
.ipynb.JupyterLab
jupyter lab.Комірка коду (Code Cell)
[n]: у порядку виконання.Комірка Markdown
Command Mode
Edit Mode
Ядро (Kernel)
Shift + Enter
Вступ до штучного інтелекту та машинного навчання
Що таке AI, ML та Data Science, чим вони відрізняються, як комп'ютер навчається на даних — без формул, але з ясними аналогіями та хронологією розвитку від 1950 до ChatGPT
Робота з даними з використанням NumPy і pandas
Чому стандартних списків Python недостатньо для Data Science, як NumPy прискорює обчислення у 100 разів, що таке Series і DataFrame у pandas, як читати CSV і Excel та які методи потрібні для першого знайомства з датасетом