Урок курса

Импорт библиотек и управление зависимостями

Jupyter Notebook с нуля: бесплатный курс

Импорт модулей Python в ноутбуке

Одно из преимуществ Jupyter Notebook – вы можете пользоваться всей экосистемой Python. Большая часть функциональности в Python организована в виде модулей и пакетов (библиотек). Чтобы использовать функционал библиотеки в своём коде, её нужно импортировать.

Синтаксис импорта в Python одинаков везде (в скрипте, консоли или ноутбуке):

  • import имя_модуля – импортировать модуль целиком. После этого функции/классы из него доступны с префиксом. Например:

    import math 
    print(math.sqrt(16))

    Вывод: 4.0 (мы воспользовались функцией sqrt из модуля math).

  • import имя_модуля as псевдоним – то же, но позволяет использовать короткое имя для модуля. Принято использовать сокращения для популярных библиотек:

    import numpy as np 
    import pandas as pd

    После этого можно вызывать, например, np.array() или pd.DataFrame(). Такое соглашение облегчает чтение кода.

  • from имя_модуля import конкретный_элемент – импортировать только определённую функцию или класс из модуля. Например:

    from math import pi, sin 
    print(pi) 
    print(sin(pi/2))

    Здесь мы получили непосредственно pi и sin в пространстве имен, и можем их использовать без указания модуля.

В ноутбуке эти команды работают так же, как в скрипте. Если ячейка выполнилась успешно, модуль считается импортированным во всём текущем kernel, поэтому его не нужно импортировать снова в следующих ячейках (если kernel не перезапускался). Обычно в начале ноутбука удобно собрать все импорты, чтобы сразу видеть, какие библиотеки используются.

Установка дополнительных библиотек из ноутбука

Что делать, если вы хотите использовать библиотеку, которой у вас ещё нет в среде? Обычно мы выходим в терминал и запускаем pip install <package> или conda install <package>. Но Jupyter Notebook позволяет сделать это прямо внутри себя с помощью специальных возможностей оболочки IPython:

  • Через префикс ! (выполнение shell-команд): Если поставить ! перед командой, она будет выполнена в системе, как из терминала. Например:

    !pip install requests

    выполнит установку пакета requests. Вы увидите в выводе процесс установки, как в терминале. Аналогично, если пользуетесь conda:

    !conda install pandas

    (в Jupyter на базе Anaconda эта команда сработает, возможно, потребует подтверждения -y).

  • Специальные магии %pip и %conda: В новых версиях IPython предусмотрены магические команды, эквивалентные вызову pip/conda, но более надёжные в контексте Jupyter. Их плюс в том, что они гарантированно ставят пакет именно в текущую среду kernel. Пример:

    %pip install seaborn

    после установки можно сразу import seaborn. Эта форма предпочтительнее !pip в сложных конфигурациях.

После установки пакета через pip/conda в ячейке, лучше перезапустить kernel (меню Kernel -> Restart) чтобы новая библиотека корректно подхватилась, хотя чаще всего достаточно просто выполнить импорт. Если библиотека была успешно установлена, import её не вызовет ошибок.

Обратите внимание: Anaconda уже включает множество библиотек (numpy, pandas, matplotlib, scipy и т.д.). Если вы установили Jupyter через Anaconda, многие нужные пакеты могут быть доступны сразу. В случае установки через pip, вам, вероятно, придётся вручную поставить те библиотеки, что нужны для работы.

Использование библиотек: пример NumPy и pandas

Давайте продемонстрируем импорт и применение пары популярных библиотек, которые часто используются в ноутбуках:

  • NumPy: библиотека для численных вычислений с многомерными массивами.

  • pandas: библиотека для работы с табличными данными (DataFrame).

import numpy as np
import pandas as pd

# Создадим массив NumPy и вычислим несколько статистик
data = np.array([1, 2, 3, 4, 5])
print("Массив:", data)
print("Среднее значение:", np.mean(data))
print("Стандартное отклонение:", np.std(data))

# Создадим DataFrame pandas из словаря списков
df = pd.DataFrame({
    "Name": ["Alice", "Bob", "Charlie"],
    "Age": [25, 30, 35]
})
display(df)
print("Средний возраст:", df["Age"].mean())

Увидим:

Обратите внимание: display(df) используется вместо print(df) для DataFrame, чтобы получить более приятное табличное отображение (с форматированием HTML). В простом случае можно и просто написать df последней строкой ячейки — Jupyter автоматически выведет табличку.

Продолжить с проверкой и прогрессом

Откройте интерактивный раннер с заданиями урока.

Перейти к интерактивному уроку