Топ самых полезных магических команд для завсегдатаев Colab
Составили подборку из 9 команд для Google Colab или Jupyter Notebook, показали, как они работают на примерах, а также дополнили фишечками.
5К открытий10К показов
Если вы пользуетесь на повседневной основе в средами вроде Google Colab или Jupyter Notebook, то наверняка хотя бы раз сталкивались с “магическими” командами. В статье я не только перечислю самые полезные из них, но и покажу, как они работают на примерах, а также дополню фишечками.
%lsmagic
Чтобы не тратить драгоценный умственный ресурс, запомните всего одну директиву – вывести список всех команд. Запустив %lsmagic
, получаем вот такой интересный список:
Magic Commands – это часть IPython, интерактивной оболочки с дополнительными командами, подсветкой кода и автодополнением. Команды выполняют разнообразные вспомогательные операции. Те, что начинаются с одного символа “%”, применяются к одной строке, другие — ко всей ячейке. Давайте разберем самые полезные “колабисту” мэджики.
%%time
Измеряет время выполнения ячейки. Это незаменимая утилита при оценке качества рефакторинга. Допустим, вы узнали, что цикл for замедляет код и переписали некоторый участок на перечисление (enumeration). Используя %%time
, вы сможете с легкостью оценить прирост в общей скорости исполнения кода. Покажу на примере.
Объявим наш итерируемый список:
Замерим скорость итерации списка циклом while:
Ячейка выведет, помимо самих элементов списка, еще и время, затраченное на исполнение сниппета – 99 µs (миллионной доли секунды):
Перепишем код на функцию enumerate():
Получается, что на маленьких списках while даже выигрывает у enumerate (99 микросекунд против 123).
%%capture
Cкрывает выходные данные ячейки. Это полезно в разделе, где вы устанавливаете необходимые библиотеки: сводка процесса установки занимает много места и часто не является важной информацией, так что ее можно скрыть.
%autoawait
Позволяет использовать параллельные процессы. Ультраполезная фича, когда речь заходит о предварительной обработке данных, где на одном конвейере предстоит обработать разные столбцы крупного датафрейма:
В следующей ячейке запускаем магическую команду:
На выходе получаем параллельно исполненные ячейки:
%debug
Активируeт интерактивный отладчик.
Эта команда поддерживает два способа активации: перед выполнением кода (точка останова) и post-mortem (“посмертно”). Второй режим вы можете активировать, запустив %debug
без каких-либо аргументов. Если только что произошло исключение, это позволит в интерактивном режиме проверить путь ошибки:
Ячейка не выведет цифру пять, хоть последняя часть функции этого и требует. Строка с print()
будет исполнена, если прервать отладку, нажав на кнопку стоп:
%pip
Множество сторонних библиотек подключается к проекту именно этой командой.
Вот интересная фишка: помимо установки модуля по названию:
вы можете устанавливать некоторые инструменты с помощью ссылки на репозиторий.
В последнее время для одной из библиотек, которую использую при предварительном анализе данных – pandas_profiling
, наблюдалась проблема установки стандартным способом. А вот с инсталляцией по ссылке все работает:
%precision
Указывает число знаков после запятой (decimal number) для числовых объектов.
%rerun
Перезапускает предыдущую ячейку. В моей практике это полезно, чтобы пересобрать, к примеру, эмоциональную окраску (позитивная / негативная) реплики пользователя на базе библиотеки dostoevsky
. Но пример приведу чуть проще:
%%html
Отрендерит ячейку как код HTML. Таким же образом исполнит код на Javascript, Perl или Ruby! Вот это действительно удивительное дополнение. Только используйте с осторожностью!
Более того, для учебы нередко пригождается верстка формул на специальном стандарте LaTeX, или справочной информации на Markdown. Для самых креативных предусмотрели даже рендеринг из .svg.
Заключение
Помню, на учебе пару раз выполнила некоторые из магических команд. И забыла до тех пор, пока случайно не наткнулась снова и не влюбилась окончательно.
Со временем стало ясно, почему команды назвали магическими. Они очень полезны для выполнения различных системных операций прямо из ячеек ноутбука, а также для оптимизации вашего кода и анализа производительности.
Попробуйте во время работы в ноутбуке подыскать какую-нибудь специфическую потребность, и вы убедитесь – многие из таких решаются силами IPython.
Если вы хотите поиграться командами, то в я собрала их в отдельный ноутбук, не требующий дополнительной настройки.
5К открытий10К показов