5 возможностей Jupyter Notebook на Python для Data Science

Jupyter Notebook предоставляет больше возможностей, чем кажется. Если в прошлый раз мы говорили о расширения для Jupyter Notebook, то сегодня поговорим о так называемых «магических командах» на Python, которые могут стать незаменимым инструментом для Data Science.

Что такое и зачем магические команды

Магические команды — это встроенные команды интерактивного Python [1], в том числе и Jupyter Notebook. разработка в котором ведется в ячейках. Магические команды могут быть двух видов:

  • Выполняющиеся для одной строки – они начинаются с %
  • Выполняющиеся для всей ячейки– они начинаются с %%.

В этой статье мы поговорим о 7 полезных командах и возможностей Jupyter Notebook.

1. Вызываем документацию

Если вы не помните аргументы вызываемой функции или хотите посмотреть пример ее реализации, воспользуйтесь знаком вопроса. Он ставится в начале или конце функции, класса или модуля. Например, посмотрим на класс LinearRegression из Python-библиотеки Scikit-learn (о линейной регрессии говорили тут):

In [1]: from sklearn.linear_model import LinearRegression
In [2]: ?LinearRegression

На выходе получаем документацию (docstring). Разработчики Scikit-learn в документацию добавляют примеры использования:

Examples
--------
>>> import numpy as np
>>> from sklearn.linear_model import LinearRegression
>>> X = np.array([[1, 1], [1, 2], [2, 2], [2, 3]])
>>> # y = 1 * x_0 + 2 * x_1 + 3
>>> y = np.dot(X, np.array([1, 2])) + 3
>>> reg = LinearRegression().fit(X, y)
>>> reg.score(X, y)
1.0

Чтобы получить исходный код, используйте два знака вопроса до или после объекта:

In [3]: LinearRegression??

2. Засекаем время

В предыдущий раз мы использовали расширение ExecuteTime, чтобы получить время выполнения ячейки. Магическая команда %%time (%time для строки) сделает то же самое:

In [1]: %%time
In [2]: import time
In [3]: time.sleep(1)
CPU times: user 660 µs, sys: 107 µs, total: 767 µs
Wall time: 1 s

Первая строка показывает время компиляции кода, а вторая Wall time — время, затрачиваемое на выполнение заданного Python-кода.

Есть более расширенная версия %time — это %timeit. Команда %timeit может принимать аргументы:

  • -n<N>: количество выполнений за один цикл.
  • -r<R>: количество повторений в каждом цикле. Из <R> выбирается с наилучшим результатом. По умолчанию 7.
  • -p<P>: точность вывода цифр после запятой. По умолчанию 3.
  • и др [2].

Например, код ниже выполнится в цикле 2 раза, в каждом из которых он запустится по 3 раза с выбором наилучшего результат. После произойдет расчет среднего и стандартного отклонения:

In [4]: %%timeit -n 2 -r 3
In [5]: import time
In [6]: time.sleep(1)
1 s ± 4.87 µs per loop (mean ± std. dev. of 3 runs, 2 loops each)

3. Пользуемся Jupyter Notebook как командной строкой

На практике часто приходится устанавливать разного рода библиотеки через пакетный менеджер pip или conda. Для этого нужно открывать командную строку или терминал и прописывать:

pip install package

Используйте вместо этого восклицательный знак в ячейке Jupyter Notebook перед командой:

!pip install package

4. Экспортируем и импортируем Python-файлы

Мы можем записать ячейку в Python-файл. Для этого используется %%writefile <filename>:

%%writefile temp.py
def foo(a, b=5):
    pass

Так, мы записали ячейку с функцией foo в файл temp.py в текущую директорию. Чтобы импортировать Python-файл воспользуйтесь %pycat:

%pycat temp.py

5. Запускаем в ячейках Jupyter Notebook всевозможные языки

Jupyter Notebook позволяет модифицировать ячейку в языки:

  • %%python2
  • %%ruby
  • %%perl
  • %%html
  • %%latex
  • и т.д [3]

Например, следующая ячейка запустит команду в bash:

%%bash
echo "Это bash"

А эта команда запустит видеобзор “Основы работы в Jupyter Notebook”, в котором объясняются способы взаимодействия не только с Jupyter Notebook, но и с Google Colab:

%%html
<iframe src="https://www.youtube.com/watch?v=1MZiw7X1P2U&t=191s" width="450" height="350" allowfulscreen></iframe>

Получить практические навыки программирования на Python в Jupyter Notebook и Google Colab вы сможете на наших курсах в лицензированном учебном центре обучения и повышения квалификации ИТ-специалистов в Москве.

Источники
  1. https://ipython.readthedocs.io/en/stable/index.html
  2. https://ipython.readthedocs.io/en/stable/interactive/magics.html
  3. https://ipython.readthedocs.io/en/stable/interactive/magics.html#cell-magics

Добавить комментарий

Поиск по сайту