Я хотел бы получить время, затраченное на выполнение ячейки, в дополнение к исходному выводу из ячейки.
С этой целью я пытался, %%timeit -r1 -n1
но он не раскрывает переменную, определенную в ячейке.
%%time
работает для ячейки, которая содержит только 1 оператор.
In[1]: %%time
1
CPU times: user 4 µs, sys: 0 ns, total: 4 µs
Wall time: 5.96 µs
Out[1]: 1
In[2]: %%time
# Notice there is no out result in this case.
x = 1
x
CPU times: user 3 µs, sys: 0 ns, total: 3 µs
Wall time: 5.96 µs
Какой лучший способ сделать это?
Обновить
Я использую время выполнения в Nbextension уже довольно давно. Это просто супер.
python
ipython
ipython-notebook
jupyter
colinfang
источник
источник
x
строку дисплея в следующую ячейку?Ответы:
Используйте магию клеток и этот проект на github от Phillip Cloud:
Загрузите его, поместив в верхнюю часть записной книжки или в файл конфигурации, если вы всегда хотите загрузить его по умолчанию:
Если загружено, каждый вывод последующего выполнения ячейки будет включать время в минутах и секундах, которое потребовалось для его выполнения.
источник
pip install ipython-autotime
%%time
работает, даже если последнее утверждение нетprint
.Единственный способ, который я нашел, чтобы преодолеть эту проблему, - выполнить последнее утверждение с помощью print.
Не забывайте, что клеточная магия начинается с,
%%
а магическая линия начинается с%
.Обратите внимание, что любые изменения, выполненные внутри ячейки, не учитываются в следующих ячейках, что противоречит интуитивно понятному при наличии конвейера:
источник
%%time
аa=1
2-я ячейка не знает, что этоa
такое?%time
и%timeit
теперь входите в состав встроенных магических команд ipythonисточник
Более простой способ - использовать плагин ExecuteTime в пакете jupyter_contrib_nbextensions.
источник
Я просто добавил
%%time
в начале ячейки и получил время. Вы можете использовать то же самое в кластере Jupyter Spark / Виртуальной среде, используя то же самое. Просто добавьте%%time
вверху ячейки, и вы получите вывод. На искровом кластере с использованием Jupyter я добавил верхнюю часть ячейки и получил вывод, как показано ниже: -источник
источник
Вы можете использовать
timeit
магическую функцию для этого.Или на камеру
Проверьте больше магических функций IPython на https://nbviewer.jupyter.org/github/ipython/ipython/blob/1.x/examples/notebooks/Cell%20Magics.ipynb
источник
Это не совсем красиво, но без дополнительного программного обеспечения
Тогда вы можете запустить его так:
источник
Иногда форматирование в ячейке отличается при использовании
print(res)
, но jupyter / ipython поставляется сdisplay
. Смотрите пример разницы форматирования с использованием панд ниже.display
Оператор может сохранить форматирование.источник
Вы также можете заглянуть в магическую команду профилирования Python,
%prun
которая дает что-то вроде -затем
вернется
Я считаю это полезным при работе с большими кусками кода.
источник
Когда в беде, что значит что:
?%timeit
или??timeit
Чтобы получить детали:
источник
Если вы хотите напечатать время выполнения ячеек на стене, это хитрость, используйте
но здесь убедитесь, что %% time - волшебная функция, поэтому поместите ее в первую строку в своем коде .
если вы поместите его после какой-то строки кода, это приведет к ошибке при использовании и не сработает.
источник