время выполнения ячейки кода jupiter notebook

Simple way to measure cell execution time in ipython notebook

I would like to get the time spent on the cell execution in addition to the original output from cell.

%%time works for cell which only contains 1 statement.

What’s the best way to do it?

Update

I have been using Execute Time in Nbextension for quite some time now. It is great.

14 Answers 14

The only way I found to overcome this problem is by executing the last statement with print.

Notice that any changes performed inside the cell are not taken into consideration in the next cells, something that is counter intuitive when there is a pipeline: время выполнения ячейки кода jupiter notebook

An easier way is to use ExecuteTime plugin in jupyter_contrib_nbextensions package.

%time and %timeit now come part of ipython’s built-in magic commands

время выполнения ячейки кода jupiter notebook

Use cell magic and this project on github by Phillip Cloud:

Load it by putting this at the top of your notebook or put it in your config file if you always want to load it by default:

If loaded, every output of subsequent cell execution will include the time in min and sec it took to execute it.

время выполнения ячейки кода jupiter notebook

время выполнения ячейки кода jupiter notebook

You can use timeit magic function for that.

I simply added %%time at the beginning of the cell and got the time. You may use the same on Jupyter Spark cluster/ Virtual environment using the same. Just add %%time at the top of the cell and you will get the output. On spark cluster using Jupyter, I added to the top of the cell and I got output like below:-

This is not exactly beautiful but without extra software

Then you can run it like:

If you want to print wall cell execution time here is a trick, use

but here make sure that, the %%time is a magic function, so put it at first line in your code.

if you put it after some line of your code it’s going to give you usage error and not gonna work.

время выполнения ячейки кода jupiter notebook

That was only a problem in old versions.

All you need to do now is put %%time at the top of the cell.

время выполнения ячейки кода jupiter notebook

%time measures how long it took something to run. It’s better for reporting on long-running operations than for doing low-level optimization.

%%timeit is a benchmarking tool that runs statements over and over to give the average runtime for some statements, as well as the standard deviation. Because of the way in which the statements are repeatedly executed, the variables created in %%timeit cells are not available in other cells.

время выполнения ячейки кода jupiter notebook

%%timeit uses the python timeit module. The docs for that say,

It avoids a number of common traps for measuring execution times. See also Tim Peters’ introduction to the “Algorithms” chapter in the Python Cookbook, published by O’Reilly.

I hope that that module is still relevant, as the reference it refers to describes issues such as (1) workarounds for Windows 98 only updating time.time() 18.2 times per second, and (2) jamming all the statements onto one line to avoid the bytecode overhead of incrementing the line number counter.

The currently top-rated answer, as well as some of the other outdated ones—which should be deleted because they are now highly misleadingdo have useful comments indicating that those answers are not correct:

Источник

Время выполнения ячейки кода jupiter notebook

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Источник

JupyterLab и Jupyter Notebook — мощные инструменты Data Science

Подробно рассказываем об инструментах семейства Jupyter – эффективных средствах разработки для задач Data Science и смежных областей.

время выполнения ячейки кода jupiter notebook

Краткий обзор

В конце февраля был выпущен релиз JupyterLab – гибкой, интегрируемой и легко расширяемой среды, поддерживающей одновременную работу с несколькими блокнотами Jupyter, текстовыми файлами, датасетами, терминалами и другими компонентами. Аналогично классическим IDE в JupyterLab можно упорядочивать документы в рабочей области в удобном порядке при помощи вкладок и разделителей.

JupyterLab поддерживает отображение и редактирование множества форматов данных: изображений, CSV, JSON, Markdown, PDF, Vega, Vega-Lite и так далее. Для быстрой навигации по документам в JupyterLab есть настраиваемые горячие клавиши, а также возможность использования стандартных сочетаний из vim, emacs и Sublime Text.

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

Если вы уже знакомы с Jupyter Notebook, то вы очень быстро освоитесь с JupyterLab, которая в существенной мере обогащает возможности классического блокнота Jupyter. Не устанавливая JupyterLab, вы можете ознакомиться с демо-примером на странице Binder – инструменты Jupyter поддерживают запуск на сторонних серверах.

Для этой статьи мы взяли за основу ключевые моменты из документации JupyterLab, а также рассмотрели особенности лежащего в основе этой среды типа данных Jupyter Notebook, чтобы те, кто еще не использовали блокноты Jupyter, оценили их преимущества.

Установка

Среда JupyterLab может быть установлена при помощи conda, pip или pipenv:

conda

pipenv

или из репозитория git:

При использовании pipenv для запуска при помощи jupyter lab вам необходимо предварительно активировать виртуальное окружение проекта.

Запуск

Запуск сервера JupyterLab из терминала производится следующей простой командой:

При этом интерфейс JupyterLab автоматически открывается в используемом вами браузере. Также вы можете получить доступ к запущенному серверу, введя в адресную строку браузера соответствующую ссылку (по умолчанию это http://localhost:8888). Вы можете открыть классический интерфейс блокнота Jupyter, выбрав “Launch Classic Notebook” из меню Help, или переключаться между интерфейсами, заменяя окончание строки: /lab для интерфейса JupyterLab или /tree для классического интерфейса.

Интерфейс

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

Интерфейс JupyterLab состоит из основной рабочей области, содержащей вкладки документов и инструментов, скрываемой левой боковой панели и меню.

время выполнения ячейки кода jupiter notebook

Меню по умолчанию выглядит следующим образом:

Расширения JupyterLab позволяют создавать дополнительные вкладки в панели меню.

Боковая панель

Боковая панель содержит браузер файлов (Files), список запущенных инструментов (Running), палитру команд (Commands), инспектор инструментов ячеек блокнота (Cells) и списка вкладок (Tabs).

время выполнения ячейки кода jupiter notebook

Процесс «схлопывания» боковой панели происходит по клику на открытой вкладке, как это проиллюстрировано в коротком видео ниже.

Использование расширений JupyterLab также позволяет добавлять в боковую панель дополнительные вкладки.

Основная рабочая область

Основная рабочая область позволяет группировать документы (блокноты, текстовые файлы и пр.) и другие инструменты (терминалы, консоли и т. д.) в виде панелей с вкладками, размер и расположение которых можно изменить перетаскиванием.

Вкладки и режим работы с отдельным документом

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

время выполнения ячейки кода jupiter notebook

Эта же информация доступна на вкладке Tabs в menu:

время выполнения ячейки кода jupiter notebook

Часто полезно сфокусироваться на отдельном документе и инструменте без того, чтобы закрывать все остальные вкладки в рабочей области. Для этого в JupyterLab есть режим работы с отдельным документом. Его можно запустить из панели View («Single-Document Mode») или воспользоваться сочетанием горячих клавиш (по умолчанию Ctrl+Shift+Enter).

Контекстные меню

Многие составляющие JupyterLab, такие как блокноты, текстовые файлы, консоли и вкладки, имеют собственные контекстные меню.

Для использования оригинального контекстного меню браузера при вызове контекстного меню зажимайте Shift.

Горячие клавиши

Аналогично классическому Jupyter Notebook, вы можете использовать для навигации и запуска инструментов горячие клавиши, которые можно настроить при помощи Advanced Settings Editor в меню в панели Settings.

Вы также можете настроить текстовый редактор так, чтобы использовать сочетания горячих клавиш из vim, emacs или Sublime Text. Для этого в меню в панели Settings выберите строку Text Editor Key Map.

Работа с файлами

Браузер файлов и меню File позволяют открывать, создавать, удалять, переименовывать, скачивать, копировать и делиться файлами и директориями. Файлы открываются стандартно – двойными кликом в браузере файлов из боковой панели.

Также вы можете перетащить файл в рабочую область, создав таким образом дополнительную вкладку сразу в нужном вам месте.

Для некоторых типов файлов поддерживаются множественные представления. Например, вы можете открыть файл Markdown в текстовом редакторе или в форме HTML-страницы. Расширения JupyterLab позволяют использовать дополнительные методы просмотра/редактирования различных файлов, добавляя в контекстное меню новые строки «Open With. «.

Удобная особенность JupyterLab заключается в том, что разные представления файла синхронизируются между собой. То есть, работая, например, с тем же файлом Markdown в редакторе, вы сразу же видите как он отрисовывается в HTML.

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

Того же результата можно добиться на вкладке New в меню File.

время выполнения ячейки кода jupiter notebook

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

Новый файл создается с именем по умолчанию. Переименовывается файл из контекстного меню браузера файлов или вкладки, на которой открыт файл.

Файлы также могут быть загружены в текущую директорию переносом их в панель браузера файлов или при помощи кнопки «Upload files» в верхней части браузера файлов.

Текстовый редактор

Текстовый редактор JupyterLab имеет инструмент подсветки синтаксиса, настройки отступов (табы/пробелы) и сочетаний горячих клавиш.

Все редакторы Jupyter поддерживают множественный курсор, аналогично, например, Sublime Text. Таким образом, можно существенно быстрее править однотипные части текста и кода.

Jupyter Notebook

Блокноты Jupyter (также часто в российском сообществе называемые ноутбуками) представляют собой документы, комбинирующие блоки запускаемого кода с текстом в Markdown-разметке, формулами (LaTeX), изображениями, интерактивными визуализациями и другими форматами выходных данных.

время выполнения ячейки кода jupiter notebook

Остановимся подробнее на основной особенностях блокнотов Jupyter, сделавших их такими популярными.

Блокноты Jupyter позволяют интерактивно работать с кодом непосредственно в браузере. Блокнот Jupyter состоит из независимо запускаемых ячеек с кодом, которые в результате запуска выполняют содержащийся в ячейке программный код и добавляют в пространство имен соответствующие имена переменных, функций, классов и т. д. Ячейки с кодом можно перемежать ячейками с Markdown-разметкой и, как будет показано далее, ячейками с кодом на различных языках программирования и разметки. Код можно запускать как отдельно для каждой ячейки, так и последовательно от первой ячейки к последней. Вы можете попробовать работу с блокнотами Jupyter на одном из языков Python, Julia или R так же на Binder, независимо от Jupyter Lab и без установки.

Магические функции

Одна из крайне удобных составляющих Jupyter Notebook – это специальные магические функции, облегчающие задачи при добавлении их в начало соответствующих ячеек. Так, например, вставка %matplotlib inline приводит к автоматическому выводу изображений matplotlib непосредственно в вывод ячейки. Примеры других команд представлены ниже, с полным списком магических функций вы можете ознакомиться здесь.

Тайминг

Профилирование

Логирование

Дебаггинг

Общие методы магических функций

Работа с директориями

Псевдонимы и замены стандартного использования

Импорт и экспорт кода

Переменные среды и пространство имен

Вывод документации и поиск информации

Другие

Выполнение shell-команд

Блокноты позволяют вызвать любую shell-команду прямо из ячейки. Например, так можно быстро установить недостающую библиотеку:

Запись формул в LaTeX

Использование разных языков

В одном блокноте можно использовать сразу несколько языков программирования. Обозначив это при помощи двух знаков процента в начале ячейки, например, %%python2, %%python3, %%R, %%bash и т. д. Идентичным образом можно получать отрисовку ячеек с кодом в LaTeX, поставив в начале ячейки %%latex. Аналогично служат команды %%html, %%javascript (или %%js), %%markdown, %%ruby, %%sh.

Блокноты (ноутбуки) в JupyterLab

Блокноты Jupyter (.ipynb файлы) полностью поддерживаются в JupyterLab. Формат документов идентичен классическому Jupyter Notebook. Имеющиеся у вас блокноты будут аналогичным образом отображаться в JupyterLab.

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

Для удобства работы вы можете временно скрывать и отображать большие куски вывода данных при помощи соответствующей кнопки слева от каждой ячейки.

Альтернативный вариант просмотра – использование скроллинга или вывода результатов ячейки в отдельную вкладку.

Автодополнения по клавише Tab в сравнении с Jupyter Notebook включают дополнительную информацию о типах соответствующих объектов.

Подсказки, активируемые при помощи Shift Tab содержат дополнительную информацию об объектах.

Вы также можете подключить консоль, чтобы вести лог сделанных вычислений в том порядке, в каком они были сделаны в блокноте. Консоль можно использовать как место для интерактивной проверки различных небольших идей без изменения блокнота. Для этого из консольного меню блокнота выберите «Create Console for Notebook».

Терминалы

Терминалы JupyterLab обеспечивают полную поддержку для системных оболочек (bash, tcsh и т. д.) на Mac/Linux и PowerShell на Windows. Через терминал вы можете запустить практически любую программу, включая vim или emacs.

время выполнения ячейки кода jupiter notebook

Управление ядрами и терминалами

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

время выполнения ячейки кода jupiter notebook

Как и в классическом Jupyter Notebook, когда вы закрываете вкладку документа, консоли или терминала, соответствующее ядро или терминал продолжают работу на сервере, и у вас остается возможность подключиться к ним позже. Вкладка Running позволяет вам заново открыть соответствующий инструмент или выключить его.

Палитра команд

Все пользовательские действия в JupyterLab обрабатываются при помощи централизованной командной системы. Эти команды являются общими и используются совместно во всех элементах JupyterLab. Палитра команд в боковой панели предоставляет способ для их быстрого поиска и запуска.

Перенаправление кода консоли

В архитектуре Jupyter ядра представляют собой отдельные процессы, запускаемые сервером, которые работают с определенным кодом при помощи соответствующего языка и окружения. JupyterLab позволяет запускать код из любого открытого текстового документа, вызвав из контекстного меню команду «Create Console for Editor». Наиболее частым примером такой необходимости служат вкрапления кода, включенные в Markdown-разметку, которые можно запустить в консоли еще более просто по горячей клавише Shift Enter.

Файлы различных форматов

В архитектуре JupyterLab существенное внимание уделено отображению и редактированию данных в самых разных форматах – и загружаемым в качестве входных данных, и выгружаемым на выходе. Формат файлов автоматически определяется по расширению файла или его имени при отсутствии расширения. Как было упомянуто выше, файлы могут открываться в нескольких представлениях, например, в редакторе и средстве просмотра.

время выполнения ячейки кода jupiter notebook

Для того, чтобы использовать эти различные форматы данных в качестве выходных данных в блокноте или консоли вы можете использовать соответствующий API для отображения, например, запуск следующего кода

приведет к отображению соответствующего HTML-коду блока.

время выполнения ячейки кода jupiter notebook

Кратко опишем какие еще форматы в текущий момент поддерживаются (соответствующие видеоиллюстрации можно посмотреть на странице документации):

Расширения

Архитектура JupyterLab построена с возможностью дальнейшего расширения среды. Расширения позволяют добавлять новые темы, средства просмотра других файлов или отрисовки других форматов внутри блокнотов, добавляют дополнительные вкладки в меню и команды в Command Pallete, создают возможности дополнительной настройки системы.

Расширения JupyterLab представляют собой npm-пакеты (стандартные пакеты для JavaScript-разработки). Многие из них разработаны самим сообществом на GitHub, соответственно вы можете найти их в этом топике. Также вам могут быть интересны старые решения для расширения магических функций.

Основной способ для включения расширений выглядит следующим образом:

где my-extension – имя того расширения, что вы хотите установить. Можно использовать как расширения, находящиеся среди пакетов в npm, так и созданные вами. Дополнительно об этом читайте на странице документации.

Среди интересных расширений стоит обратить внимание, в частности, на расширение RISE, позволяющее показывать блокнот Jupyter в виде презентации (интересный пример).

Серверы и совместная работа

Сервис mybinder предоставляют доступ к Jupiter Notebook и JupyterLab со всеми установленными библиотеками, так что пользователь может изучать и запускать созданный вами проект, имея под рукой только браузер.

Вы также можете создать свою собственную систему с помощью JupyterHub, который, в частности, позволяет совместно работать нескольким пользователям с одним и тем же блокнотом, аналогично Google-документам, то есть один пользователь видит в процессе, какие изменения вносятся остальными.

В качестве примера использования JupyterHub как преднастроенной среды для совместной работы множества пользователей посмотрите видео о применении этого инструмента в аналитике Яндекса.

Источник

Как оптимизировать работу в Jupyter Notebook

Как оптимизировать работу в Jupyter Notebook

Jupyter Notebook (ранее известный как IPython Notebook) — веб-оболочка для нескольких языков программирования: Julia, Python и R. Это одна из множества технологий, которые позволяют делать жизнь людей проще и лучше. Но установка пакета — только начало, есть множество вещей, которые можно доработать, чтобы сделать процесс разработки ещё удобнее.

В этой статье предполагается, что вы мало знакомы с Jupyter Notebook. Прежде чем мы перейдём к более хитрым трюкам, речь пойдёт о базовых вещах.

Если вы только открываете для себя эту тему, лучше сначала изучить вопрос с установкой и работой Anaconda.

Начало работы

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

Смена темы оформления

Чтобы настроить многими любимый тёмный режим, нужно зайти в терминал и установить Jupyterthemes:

Теперь можно установить тёмную тему:

время выполнения ячейки кода jupiter notebook

Восстановить основную тему можно в любое время:

Найти Jupyterthemes можно в репозитории на GitHub.

Основные команды

время выполнения ячейки кода jupiter notebook

Shift+Enter позволяет запустить текущую ячейку.

Esc переводит в командный режим. Он позволяет перемещаться по документу с помощью клавиш-стрелок.

14–30 сентября, Онлайн, Беcплатно

В командном режиме можно использовать:

Shift+Tab — покажет документацию для объекта, который вы только что ввели в ячейку кода. Для переключения между несколькими режимами продолжайте нажимать это сочетание клавиш.
Esc+F — поможет найти и заменить информацию в коде (кроме выходных данных).
Esc+0 — переключает вывод ячейки.
Shift+J (или Shift+Down ) — выделяет ячейки ниже текущей. Shift+K (или Shift+Up ) выделяет ячейки выше текущей. Как только ячейки выбраны, их можно удалить/скопировать/вырезать/вставить/запустить как пакет. Это удобно, когда нужно переместить только часть документа.
Shift+M — позволяет объединить несколько ячеек.

время выполнения ячейки кода jupiter notebook

Кроме того, в документе можно запускать bash-команды, если в начале поставить восклицательный знак:

Чтобы отключить отображение результата выражения в последней строчке ячейки, добавьте в конце последней строчки точку с запятой ( ; ).

Комментирование/раскомментирование блока кода

время выполнения ячейки кода jupiter notebook

LaTex

Вы можете писать на LaTex в Markdown-ячейках, и они будет отображены в виде формулы.

Данная строка будет преобразована в следующую формулу:

время выполнения ячейки кода jupiter notebook

Отображение данных из всех ячеек

Отображение по умолчанию:

время выполнения ячейки кода jupiter notebook

Отображение всех ячеек:

время выполнения ячейки кода jupiter notebook

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

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

Расширения

Поскольку Jupyter Notebook имеет открытый исходный код, для него было разработано множество расширений. Вы можете поработать с официальным списком расширений IPython или посмотреть другие популярные расширения.

Вы можете установить Nbextensions в любое время из командной строки.

Или с помощью Anaconda:

Как только они будут установлены, вы увидите вкладку Nbextensions.

время выполнения ячейки кода jupiter notebook

В этом репозитории можно узнать больше о расширениях, об их включении в ваш документ и исключении из него.

Для работы просто нажмите «Nbextensions» в верхней части экрана, выберите интересующее вас расширение, а затем прокрутите вниз, чтобы найти нужную информацию.

время выполнения ячейки кода jupiter notebook

Популярные расширения

Магия

Магия — это удобные команды, которые облегчают жизнь, когда вы хотите выполнить определённые задачи. Они часто выглядят как команды Unix, но все они реализованы на Python.

Есть два вида магии: строчная магия (применяется к одной строке) и магия ячейки (применяется ко всей ячейке). Строчная магия начинается с символа процента ( % ), а магия ячейки — с двух таких символов ( %% ).

Чтобы увидеть доступную магию, нужно запустить следующее:

время выполнения ячейки кода jupiter notebook

Настройка среды разработки

Можно легко управлять переменными среды вашего документа с помощью %env без перезагрузок. Выполните эту команду без каких-либо переменных, она отобразит все ваши переменные среды.

время выполнения ячейки кода jupiter notebook

Вставка кода

С помощью %load можно вставить код из внешнего скрипта.

Данная команда возьмёт файл basic_imports.py и загрузит его в ваш документ.

Экспорт содержимого ячейки

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

Дальше можно его загрузить в любое время, написав:

Выполнение этой команды заменяет содержимое ячейки загруженным файлом.

Теперь вы можете снова запустить ячейку, чтобы импортировать все ваши модули.

время выполнения ячейки кода jupiter notebook

Сохранение и повторное использование кода

Как и у большинства людей, у вас периодически могут быть одни и те же задания. Возможно, есть несколько уравнений, которые вы постоянно решаете, или несколько строк кода, которые вы создавали много раз. Jupyter позволяет сохранять фрагменты кода как исполняемые макросы. Поскольку макросы — это просто код, он может содержать переменные, которые должны быть определены перед выполнением.

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

Чтобы загрузить макрос, достаточно выполнить следующее.

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

Для наглядного примера измените переменную, использованную в макросе.

При запуске макроса захватывается измененное значение.

время выполнения ячейки кода jupiter notebook

Это работает, потому что макросы выполняют сохраненный код в пространстве имён ячейки. Если name будет не определено, вы получите ошибку.

%store позволяет хранить макрос и использовать его во всех Jupyter Notebook.

время выполнения ячейки кода jupiter notebook

время выполнения ячейки кода jupiter notebook

Магия run

Магия pycat

Использование %pycat покажет содержимое скрипта, если вы не уверены, что в нём находится.

время выполнения ячейки кода jupiter notebook

Автосохранение

%autosave определяет, как часто ваш документ будет автоматически сохранять контрольные точки в файл.

После данной команды автосохранение будет происходить каждые 60 секунд.

Отображение графиков

Эта команда отобразит графики Matplotlib прямо в выводе ячейки. Это означает, что диаграммы и графики Matplotlib можно включать прямо в свои документы. Имеет смысл запустить команду в начале вашего документа, прямо в первой ячейке.

время выполнения ячейки кода jupiter notebook

Измерение времени

Основное различие между %timeit и %time состоит в том, что первая выполняет указанный код много раз и вычисляет среднее значение.

%%time даст вам информацию о единичном запуске кода в вашей ячейке.

Запуск кода из другого ядра

Можно запустить выполнение ячейки с использованием указанного языка. Существуют расширения для нескольких языков. Есть опции вроде:

Например, для рендеринга HTML в вашем документе вы должны выполнить следующее:

время выполнения ячейки кода jupiter notebook

Вы также можете использовать LaTeX напрямую когда угодно:

время выполнения ячейки кода jupiter notebook

Магия who

Если набрать данную команду, результат будет следующим.

время выполнения ячейки кода jupiter notebook

Магия prun

%prun показывает, сколько времени ваша программа потратила на каждую функцию. Использование %prun statement_name даёт упорядоченную таблицу, показывающую, сколько раз каждая внутренняя функция была вызвана в блоке. А также время, которое потребовалось на каждый вызов, и суммарное время всех запусков функции.

Магия отладчика в Python

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

Графики высокого разрешения

Одна простая магическая строка IPython может предоставит вам на выводе график с двойным разрешением для экранов Retina. Стоит отметить, что на других экранах график может не отображаться.

Пропуск ячейки для выполнения

Просто добавьте %%script false в начале ячейки:

Оповещения

Оповещения могут пригодиться, когда вы запускаете код, требующий долгого выполнения. Вы можете настроить уведомление, которое будет отправлено, когда код выполнится.

На Linux и Mac

На Windows

Но это сработает, только если вы пользуетесь Homebrew.

Выводы

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

Если вы хотите подняться на уровень повыше, вас может заинтересовать другая статья по оптимизации Jupyter Notebook.

Хинт для программистов: если зарегистрируетесь на соревнования Huawei Cup, то бесплатно получите доступ к онлайн-школе для участников. Можно прокачаться по разным навыкам и выиграть призы в самом соревновании.

Перейти к регистрации

Источник

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *