Jupyter Notebook предлагает богатейшие возможности по прототипированию кода, проверке гипотез, демонстраций и научных трудов в сравнении со стандартным интерпретатором Python.
Уставновка:
pip install jupyter
Запуск. В терминале пишем:
jupyter notebook
После чего запускается процесс, поднимается веб-сервер и открывается окно браузера с веб-интерфейсом, где вы можете создавать, открывать, редактировать и исполнять файлы типа .ipynb. Не закрывайте этот процесс, пока работаете с блокнотом.
Jupyter Notebook не только позволяет хранить на одной странице и код, и результат его работы, а еще текст с картинками, но и предоставляет магические функции, которые взаимодействуют с вашим Python кодом, интерпретатором и операционной системой.
Рассмотрим некоторые из них:
%magic — выведет документацию по всем-всем доступным магическим функциям.
%lsmagic — просто список этих функций.
%timeit – измеряет среднее время выполнения кусочка кода, при этом вывод гораздо более информативен, чем обычный вызов timeit.timeit; и не требует лишних import.
Сравните вот это (из Jupyter):
def test():
return sum(range(1000))
%timeit test()
12.5 µs ± 378 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)
С этим (из интерпретатора):
>>> import timeit
>>> def test(): return sum(range(1000))
...
>>> timeit.timeit("test()", "from __main__ import test")
12.405041060002986
По-моему, первый вариант выигрывает по удобству и информативности.
%%timeit – многострочный вариант предыдущей функции. Пример:
%%timeit x = 10
x += 20
x /= 2
48.7 ns ± 0.435 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)
%pinfo [имя] или [имя]? – покажет документацию по функции или классу [имя]. Примеры:
import numpy as np
%pinfo np.random.uniform
Или
import numpy as np
np.random.uniform?
Построение графиков:
%matplotlib inline
from matplotlib import pyplot as plt
import numpy as np
x = np.linspace(0, 10, 100)
y = np.sin(x)
plt.plot(x, y)
%env — показать текущие переменные среды.
%env [имя]=[значение] — управление переменными среды. Пример:
%env OMP_NUM_THREADS=4
%cd – показывает или меняет рабочую директорию.
Можно вызывать системные команды прямо из блокнота через знак восклицания. Примеры:
!ls
!pip install click
# резульат выполнения системной команды можно получить в перемунную и использовать далее
output = !pip list | grep tensorflow
Это лишь малая часть доступных функций, о других сценариях работы я расскажу в следующих выпусках, оставайтесь на связи. Тестовый ноутбук по ссылке тут.
P.S. Многие магические функции также работают и в интерпретаторе IPython.
🧙 Специально для канала @pyway. Подписывайтесь на мой канал в Телеграм @pyway 👈