Используйте эти волшебные команды и повысьте свою продуктивность

Блокнот Jupyter был де-факто средой для развития всего, что связано с наукой о данных. Неудивительно, что сейчас разрабатывается множество активных расширений, облегчающих нашу жизнь. Одним из таких удобств является волшебная команда, которая часто начинается с % или %%. Если вы раньше использовали и играли с записными книжками Jupyter, скорее всего, вы уже сталкивались с ними раньше.

В этом посте мы узнаем некоторые из наиболее популярных и полезных магических команд для вашего блокнота Jupyter. Список ни в коем случае не является исчерпывающим. Итак, если у вас есть какие-либо предложения, не стесняйтесь оставлять свой ответ, чтобы другие (и я) также могли узнать!

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

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

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

Итак, теперь, когда все, надеюсь, прояснилось, давайте начнем с урока!

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

Скорее всего, %matplotlib inline - одна из самых первых магических команд, с которыми вы когда-либо сталкивались. Он используется для отображения графиков matplotlib непосредственно на записной книжке, например следующих:

import matplotlib.pyplot as plt
import numpy as np
%matplotlib inline

А теперь построим диаграмму рассеяния.

a = np.linspace(0,1,5)
b = np.linspace(1,2,5)
plt.scatter(a,b)

Полученный график будет выглядеть в вашем блокноте так

2. Интерактивное построение графиков

Еще одна полезная магическая команда - %matplotlib widget, которая позволяет вашим графикам быть интерактивными.

Вы можете активировать эту волшебную команду:

  • conda install -c conda-forge ipympl
  • jupyter nbextension enable --py widgetsnbextension

После завершения процесса установки добавьте его в свой ноутбук, например:

import matplotlib.pyplot as plt
import pandas as pd
%matplotlib widget

И строим его как обычно:

iris = pd.read_csv('https://raw.githubusercontent.com/mwaskom/seaborn-data/master/iris.csv')
plt.scatter('sepal_length', 'petal_width', data=iris)

3. Проверка и установка переменной среды

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

  • проверьте все текущие переменные среды: %env
  • проверьте конкретную переменную среды: %env <NAME> (например, %env HOME)
  • установить переменную среды: %env <NAME> <NEW VALUE> (например, %env HOME /user/home)

4. Запуск внешнего файла

Вы можете запустить внешний скрипт Python с помощью волшебной команды %run <FILENAME.py>. Например,

%run hello_world.py

5. Проверка времени выполнения кода

Иногда вы хотите просто проверить, насколько быстро (или медленно) работает ваша программа или фрагмент кода. Теперь вы можете легко сделать это, используя %%time в конкретной ячейке, которую вы хотите отслеживать.

6. Копирование кода в другой файл

Иногда вам нужно скопировать и вставить блок кода во внешний файл, например, как скрипт Python. Теперь вы можете легко это сделать, используя %%writefile <FILENAME>. Примером может быть:

%%writefile hello_world.py
def hello_world():
   print("hello world")

В результате файл hello_world.py будет содержать нашу недавно написанную функцию!

7. Отображение содержимого файла

Подобно cat в любой ОС на базе UNIX, у нас есть %pycat <FILENAME> для печати содержимого любого файла. Например,

%pycat hello_world.py

даст нам

8. Список переменных

Магическая команда %who особенно полезна для проверки того, какие из текущих переменных в настоящее время хранятся в памяти.

Если у нас есть следующее:

a = [1,2,3]
b = "hi there"
%who

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

9. Получение сведений об объекте

Помимо %who, мы можем дополнительно изучить интересующую нас переменную с помощью %pinfo <VARIABLE>. Используя указанные выше переменные a и b, мы можем выполнить следующее:

%pinfo a

Распечатка будет выглядеть примерно так:

Обратите внимание, как он предоставляет нам type, content и другую информацию, относящуюся к переменной, которую мы в настоящее время проверяем.

10. Совместное использование данных в ноутбуках

Если у вас есть несколько данных в записных книжках, которые необходимо совместно использовать, вы можете легко сделать это с помощью команды %store. Используя наш пример выше, мы можем сохранить переменную a, как в

%store a

и получить его в другой записной книжке, передав аргумент -r, как в

%store -r a

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

Вероятно, это одна из самых важных магических команд. Это позволяет избежать многих горестей и слез от неспасенного прогресса! Магическую команду можно использовать просто следующим образом:

%autosave <DURATION_IN_SECONDS>

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

%autosave 120

12. Список всех магических команд

Это, вероятно, самая полезная магическая команда из всех: перечислить все доступные магические команды, запустив %lsmagic.

Заключительные замечания

Это все для нашего урока. Надеюсь, из этого поста вы почерпнете что-то полезное. Мы обсудили некоторые из наиболее популярных волшебных команд в Python, которые могут быть ценными инструментами для экономии времени и проблем. Как всегда, если у вас есть другие крутые волшебные инструменты, которыми вы хотите поделиться с нами, оставляйте предложения в разделе ответов!

Прежде чем ты уйдешь

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