Интерактивная среда разработки Jupyter для кода на Python
Сценарии использования Jupyter Notebook для Python
Основной подход к работе с Jupyter Notebook состоит из установки пакета, запуска локального сервера и написания кода в ячейках.
Как установить Jupyter Notebook и запустить первый ноутбук?
Для установки используется пакет jupyter. Python должен быть предварительно настроен.
pip install jupyter
jupyter notebookEclipse ide python (eclipse ide для python)
В браузере появляется файловый менеджер Jupyter. Кнопка New открывает список типов файлов, среди которых выбирается Python 3. Новый файл получает расширение .ipynb.
В первой ячейке размещается команда для проверки.
print('Привет, Jupyter')Giga ide python (giga ide для python)
Выполнение ячейки происходит с помощью Shift+Enter. Результат печатается под ячейкой.
Привет, Jupyter
Python idle linux (idle на linux)
Переменные из одной ячейки остаются доступными в других ячейках.
city = 'Москва'
population = 13000000
print(city, population)Jupyter notebooks python (jupyter notebook в python)
Москва 13000000
Jupiter notebook python (jupyter notebook с python)
Такой порядок позволяет собирать программу из независимых блоков и проверять каждый блок по отдельности.
Ошибка jupyter: command not found возникает, когда каталог со скриптами Python не добавлен в переменную PATH. В этом случае используется запуск через интерпретатор.
python -m jupyter notebookSpyder python ide (среда разработки spyder для python)
Если установлено несколько версий Python, важно выбрать ту, для которой ставился пакет. Помогает команда python -m pip install jupyter.
Как использовать Jupyter Notebook на удаленном сервере?
Для удаленного доступа сервер запускается с параметром --no-browser. Это удобно для работы на облачных машинах или в контейнерах.
jupyter notebook --no-browser --ip=0.0.0.0 --port=8888Wing python ide (среда разработки wing для python)
IP-адрес 0.0.0.0 открывает доступ по сети. Для безопасности сервер требует токен, который выводится в консоли при запуске.
На локальной машине создается SSH-туннель.
ssh -L 8888:localhost:8888 user@remote_hostVs code python библиотеки (настройка библиотек python в vs code)
После этого в локальном браузере доступен адрес http://localhost:8888. Вход выполняется по токену.
Если используется менеджер окружений conda, нужно активировать окружение до запуска сервера. При запуске после активации ядро видит библиотеки окружения. Перезапуск ядра помогает проверить работоспособность.
Как работать с Jupyter Notebook в VS Code?
Редактор VS Code поддерживает .ipynb как нативный формат. Для работы устанавливается расширение Python от Microsoft.
code --install-extension ms-python.pythonPycharm python file (создание файла python в pycharm)
После установки открывается файл .ipynb. В каждой ячейке появляется кнопка запуска. Ядро отображается в правом верхнем углу. Вариант удобен тем, что рядом с ячейками доступен отладчик и подсветка синтаксиса.
Как превратить ноутбук в HTML-отчет или Python-скрипт?
Утилита nbconvert входит в состав Jupyter. Она конвертирует файл в различные форматы.
jupyter nbconvert --to script notebook.ipynbVisual studio python библиотеки (visual studio и библиотеки python)
[NbConvertApp] Converting notebook notebook.ipynb to script [NbConvertApp] Writing 510 bytes to notebook.py
Python idle windows (среда idle python на windows)
Для HTML-отчета используется параметр --to html.
jupyter nbconvert --to html notebook.ipynbСозданный HTML включает код и результаты выполнения.
Как измерить скорость выполнения операции?
Магическая команда %timeit запускает операцию несколько раз и возвращает среднее время.
%timeit sum(range(1000))1.23 µs ± 12.4 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)
Для измерения времени целой ячейки используется %%time.
%%time
total = 0
for i in range(10000):
total += iCPU times: user 1.01 ms, sys: 0 ns, total: 1.01 ms Wall time: 1.05 ms
Такие команды полезны при сравнении алгоритмов.
Как запустить Jupyter Notebook в Docker-контейнере?
Образ jupyter/base-notebook содержит Python и Jupyter.
docker run -p 8888:8888 jupyter/base-notebookВ браузере открывается адрес http://localhost:8888. Контейнер создает изолированное окружение для воспроизводимых экспериментов.
Сообщение Kernel not found появляется, если ядро Python не зарегистрировано в Jupyter. Помогает установка ядра для текущего интерпретатора.
python -m ipykernel install --userПосле перезапуска сервера ядро появляется в списке.
Как использовать магическую команду %timeit для сравнения подходов?
Команда %timeit повторяет выражение несколько раз. Это дает стабильную оценку времени.
%timeit sum([i * 2 for i in range(100)])1.31 µs ± 9.8 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)
Для многострочного кода используется %%timeit.
%%timeit
s = 0
for i in range(1000):
s += i * 218.2 µs ± 214 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)
Как вывести несколько объектов без print?
В Jupyter результат последнего выражения в ячейке отображается автоматически. Для показа нескольких значений используется display из IPython.display.
from IPython.display import display
display('Код города', 101)
display(1 + 1)'Код города' 101 2
Как выполнить системную команду внутри ноутбука?
Восклицательный знак перед командой отправляет ее в системную оболочку.
!python --versionPython 3.11.5
Результат команды можно сохранить в переменную.
output = !python --version
print(output)['Python 3.11.5']
Как построить интерактивный график с помощью ipywidgets?
Для этого используется функция interact. Она создает элементы управления на основе параметров функции.
from ipywidgets import interact
import matplotlib.pyplot as plt
import numpy as np
@interact(frequency=(1, 10), amplitude=(1, 5))
def plot_signal(frequency, amplitude):
x = np.linspace(0, 2 * np.pi, 200)
y = amplitude * np.sin(frequency * x)
plt.plot(x, y)
plt.ylim(-5, 5)
plt.show()После выполнения появляются ползунки для параметров frequency и amplitude. Изменение ползунка перерисовывает график.
Как скрыть код в экспортированном отчете?
Параметр --no-input убирает ячейки кода из вывода nbconvert.
jupyter nbconvert --to html notebook.ipynb --no-input[NbConvertApp] Converting notebook notebook.ipynb to html [NbConvertApp] Writing 3456 bytes to notebook.html
Это удобно для отчетов, где нужны только результаты.
Как получить список доступных ядер?
jupyter kernelspec listAvailable kernels: python3 /usr/local/share/jupyter/kernels/python3
Как пометить ноутбук как доверенный?
Jupyter Notebook хранит информацию о доверии в метаданных файла. Команда jupyter trust обновляет эту метку.
jupyter trust notebook.ipynbTrusting notebook notebook.ipynb
После этого среда разрешает выполнение встроенного JavaScript.
Как запустить ноутбук как презентацию?
jupyter nbconvert notebook.ipynb --to slides --post serve[NbConvertApp] Converting notebook notebook.ipynb to slides [NbConvertApp] Writing 4567 bytes to notebook.slides.html [NbConvertApp] Serving HTTP on 0.0.0.0 port 8000...
Открывается браузер с показом слайдов. Презентация делится по горизонтали на разделы.
Как отобразить таблицу с помощью DataFrame?
import pandas as pd
df = pd.DataFrame({'Город': ['Москва', 'Санкт-Петербург'], 'Население': [13000000, 5600000]})
dfJupyter отображает DataFrame как интерактивную таблицу с сортировкой.