Шпаргалка по Jupyter Notebook

Основные сочетания клавиш и магические команды

Содержимое страницы

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

jupyter notebook ui

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

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

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

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

  • Режим команд (активируется нажатием Esc): управляет операциями на уровне ячеек, такими как создание, удаление и преобразование ячеек
  • Режим редактирования (активируется нажатием Enter): позволяет редактировать содержимое внутри ячейки

Самое важное сочетание клавиш, которое нужно запомнить, — это нажатие H в режиме команд, которое отображает полный справочник по сочетаниям клавиш. Это ваша быстрая справка, когда вы забываете конкретное сочетание.

Основные сочетания клавиш в режиме команд

Навигация и выполнение ячеек

Основной рабочий процесс в Jupyter вращается вокруг эффективного выполнения ячеек:

  • Shift + Enter: выполнить текущую ячейку и автоматически выбрать ячейку ниже. Это наиболее часто используемое сочетание для последовательного выполнения кода.
  • Ctrl + Enter: выполнить текущую ячейку без перехода к следующей. Идеально, когда вы хотите многократно перезапустить ячейку.
  • Alt + Enter: выполнить текущую ячейку и вставить новую ячейку ниже. Идеально для итеративной разработки, когда нужно часто добавлять новые ячейки.

Управление ячейками

Эффективное управление структурой блокнота важно для поддержания чистых и организованных блокнотов:

  • A: вставить новую ячейку выше текущей ячейки
  • B: вставить новую ячейку ниже текущей ячейки
  • D, D (нажмите D дважды): удалить текущую ячейку. Будьте осторожны с этой командой!
  • Z: отменить последнее удаление ячейки. Спасает, когда вы случайно удаляете важные ячейки.
  • Shift + M: объединить выбранные ячейки. Выберите несколько ячеек с помощью Shift + J или Shift + K для навигации, затем объедините их.

Преобразование типа ячеек

Быстрое переключение между типами ячеек необходимо для создания хорошо документированных блокнотов:

  • Y: преобразовать ячейку в Код
  • M: преобразовать ячейку в Markdown
  • R: преобразовать ячейку в Raw (не выполняется, полезно для заметок)
  • 1 до 6: преобразовать ячейку в уровни заголовков 1 до 6 для структурированной документации

Операции с ядром

При работе с длительными вычислениями или отладкой управление ядром является критически важным:

  • I, I (нажмите I дважды): прервать ядро. Критически важно, когда нужно остановить бесконечное вычисление.
  • 0, 0 (нажмите 0 дважды): перезапустить ядро. Используйте это, когда нужно очистить все переменные и начать заново.

Отображение и навигация

  • L: переключить нумерацию строк в текущей ячейке. Полезно для отладки и ссылки на конкретные строки.
  • O: переключить вывод ячейки. Скрывайте вывод, чтобы поддерживать чистоту блокнота при презентации.
  • H: показать справочник по сочетаниям клавиш

Основные сочетания клавиш в режиме редактирования

При редактировании кода внутри ячейки эти сочетания клавиш повторяют функциональность обычных текстовых редакторов:

Редактирование текста

  • Tab: автодополнение кода или отступ. Автодополнение Jupyter мощное и контекстно-зависимое.
  • Shift + Tab: показать подсказку/документацию для объекта под курсором. Это невероятно полезно для изучения API без выхода из блокнота.
  • Ctrl + ]: сделать отступ выбранных строк
  • Ctrl + [: снять отступ выбранных строк
  • Ctrl + /: переключить комментарий на выбранных строках. Важно для быстрого отключения кода во время отладки.

Навигация

  • Ctrl + A: выбрать весь текст в ячейке
  • Ctrl + Z: отменить
  • Ctrl + Shift + Z или Ctrl + Y: вернуть
  • Ctrl + Home: перейти в начало ячейки
  • Ctrl + End: перейти в конец ячейки
  • Ctrl + Left: переместить курсор на одно слово влево
  • Ctrl + Right: переместить курсор на одно слово вправо

Переключение режимов

  • Esc: переключиться в режим команд (из режима редактирования)

Магические команды: ускорите свой рабочий процесс

Магические команды — это специальные директивы, которые расширяют функциональность Jupyter. Они бывают двух видов: линейные магические команды (с префиксом %), которые работают с одной строкой, и магические команды для ячеек (с префиксом %%), которые работают с всей ячейкой.

Профилирование производительности

Понимание производительности кода критически важно для оптимизации. Jupyter предоставляет встроенные команды для измерения времени:

# Измерить одно выполнение
%time sum(range(1000000))

# Измерить несколько выполнений с усреднением (более точно)
%timeit sum(range(1000000))

# Измерить всю ячейку
%%time
total = 0
for i in range(1000000):
    total += i

Команда %timeit особенно ценна, так как она запускает код несколько раз и предоставляет статистическую информацию о времени выполнения, что делает её идеальной для сравнения различных подходов к одной и той же задаче.

Запуск внешних скриптов

Магическая команда %run позволяет выполнять внешние Python-скрипты внутри вашего блокнота, что упрощает модуляризацию кода:

%run my_script.py

Это особенно полезно при работе с крупными проектами, где вы хотите хранить повторно используемые функции в отдельных файлах. Если вы управляете Python-средами, возможно, вы используете инструменты вроде uv или venv для управления средами, и %run работает безупречно с этими настройками.

Управление пакетами

Вы можете устанавливать и управлять Python-пакетами непосредственно из вашего блокнота:

!pip install numpy pandas matplotlib
!conda install scipy

Это исключает необходимость переключаться между терминалом и блокнотом, упрощая ваш рабочий процесс. Префикс ! выполняет команды оболочки, которые мы рассмотрим более подробно ниже.

Визуализация

Для визуализации данных с matplotlib используйте:

%matplotlib inline

Это гарантирует, что графики отображаются непосредственно внутри ячеек блокнота, обеспечивая плавный опыт визуализации. Вы также можете использовать %matplotlib widget для интерактивных графиков в JupyterLab.

Операции с файлами

Магическая команда %%writefile записывает содержимое ячейки в файл:

%%writefile example.py
def hello_world():
    print("Hello, World!")
    return True

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

Команды оболочки

Выполняйте команды оболочки непосредственно из ячеек блокнота:

# Однострочная команда оболочки
!ls -l
!pwd
!git status

# Многострочные команды оболочки
%%bash
echo "Hello from Bash"
ls -l
find . -name "*.py" | head -10

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

Исследование доступных магических команд

Чтобы узнать о всех доступных магических командах:

# Список всех магических команд
%lsmagic

# Получить справку по конкретной магической команде
%timeit?
%matplotlib?

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

Продвинутые советы и лучшие практики

Организация вашего блокнота

  1. Используйте ячейки Markdown активно: хорошо документированные блокноты легче понять и поддерживать. Используйте уровни заголовков (1-6) для создания четкой структуры.

  2. Держите ячейки фокусированными: каждая ячейка должна иметь одну четкую цель. Это облегчает отладку и улучшает читаемость.

  3. Используйте номера выполнения ячеек: номера выполнения (In [1], In [2] и т.д.) помогают отслеживать порядок выполнения, что критически важно, когда ячейки могут выполняться в произвольном порядке.

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

Когда блокноты становятся большими, эти техники помогают поддерживать организацию:

  • Используйте расширение оглавления (если доступно) для навигации
  • Разделяйте связанные разделы на отдельные блокноты
  • Используйте %%writefile, чтобы извлечь повторно используемый код в Python-модули
  • Регулярно перезапускайте ядро и выполняйте все ячейки, чтобы обеспечить воспроизводимость

Интеграция с другими инструментами

Jupyter Notebooks отлично работают с современными инструментами Python. Если вы работаете с LLMs и вам нужны структурированные выходные данные, вы можете интегрировать блокноты с инструментами вроде Ollama для структурированных выходных данных LLM. Для веб-скрапинга и обработки данных вы можете использовать библиотеки, которые конвертируют HTML в Markdown, как мы рассматривали в нашем руководстве по конвертации HTML в Markdown.

Рабочий процесс отладки

  1. Используйте магическую команду %debug после исключения, чтобы войти в отладчик
  2. Используйте %pdb on, чтобы автоматически входить в отладчик при исключениях
  3. Сообщения print и %timeit помогают выявить узкие места производительности
  4. Перезапустите ядро (0, 0), когда переменные попадают в неожиданные состояния

Настройка

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

Заключение

Освоение сочетаний клавиш и магических команд Jupyter Notebook превращает его из простого редактора кода в мощную интерактивную среду вычислений. Начните с запоминания наиболее часто используемых сочетаний (Shift+Enter, Esc, A, B, D+D, M, Y), затем постепенно внедряйте магические команды в свой рабочий процесс. Время, потраченное на изучение этих команд, окупается с лихвой в виде повышения продуктивности и эффективности рабочего процесса.

Помните: нажмите H в режиме команд в любое время, чтобы увидеть полный справочник по сочетаниям клавиш, и используйте %lsmagic, чтобы исследовать все доступные магические команды. Счастливого кодинга!

Полезные ссылки

Внешние ссылки