IPython - волшебные команды

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

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

Типы магических команд

Есть два типа магических команд -

  • Линия магии
  • Клеточная магия

Line Magics

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

Cell Magics

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

Чтобы узнать больше о магических функциях, встроенных магиях и их строках документации, используйте волшебную команду. Информация о конкретной магической функции получается%magicfunction?Командование. Давайте теперь опишем некоторые встроенные магические команды линий и ячеек.

Встроенная линейная магия

%autocall [mode]

Эта волшебная функция позволяет автоматически вызывать функцию без использования скобок. Требуется три возможных параметра режима:0 (off), 1 (smart) is default или же 2 (always on).

% автомагия

Магические функции вызываются без ввода начального%, если установлено в 1. Без аргументов они переключаются вкл / выкл. Для деактивации установите 0.

В следующем примере показана волшебная функция %pwd (отображает текущий рабочий каталог) вызывается без начала%, когда% automagic установлен в 1

%CD

Эта строчная магия изменяет текущий каталог. Эта команда автоматически поддерживает внутренний список каталогов, которые вы посещаете во время сеанса IPython, в переменной _dh. Вы также можете использовать 'cd - <tab>' для удобного просмотра истории каталогов.

Применение

Команду% cd можно использовать следующими способами:

  • %cd <dir> - Изменяет текущий рабочий каталог на <dir>

  • %cd.. - Изменяет текущий каталог на родительский

  • %cd - переход к последнему посещенному каталогу.

% dhist

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

%редактировать

Эта волшебная команда вызывает текстовый редактор по умолчанию в текущей операционной системе (Блокнот для Windows) для редактирования скрипта Python. Скрипт выполняется при закрытии редактора.

% env

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

Usage

Команду% cd можно использовать следующими способами:

  • %env - Список всех переменных среды

  • %env var - Получает значение для var

  • %env var val - Устанавливает значение для var

% gui [GUINAME]

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

Sr. No. Команда и описание
1

%gui wx

включить интеграцию цикла событий wxPython

2

%gui qt4|qt

включить интеграцию цикла событий PyQt4

3

%gui qt5

включить интеграцию цикла событий PyQt5

4

%gui gtk

включить интеграцию цикла событий PyGTK

5

%gui gtk3

включить интеграцию цикла событий Gtk3

6

%gui tk

включить интеграцию цикла событий Tk

7

%gui osx

включить интеграцию цикла событий какао

8

(требуется% matplotlib 1.1)

9

%gui

отключить всю интеграцию цикла событий

% lsmagic

Отображает все доступные на данный момент магические функции

% matplotlib

Эта функция активирует интерактивную поддержку matplotlib во время сеанса IPython. Однако он не импортирует библиотеку matplotlib. Инструментарий графического интерфейса пользователя matplotlib по умолчанию - TkAgg. Но вы можете явно запросить другой серверный интерфейс GUI. Вы можете увидеть список доступных бэкэндов, как показано -

In [4]: %matplotlib --list
Available matplotlib backends: 
['osx', 'qt4', 'qt5', 'gtk3', 'notebook', 'wx', 'qt', 'nbagg','gtk', 'tk', 'inline']

Показанный здесь сеанс IPython строит синусоидальную волну с использованием qt инструментарий -

При использовании записной книжки Jupyter встроенная директива% matplotlib отображает вывод графика только в браузере.

%блокнот

Эта функция преобразует текущую историю IPython в файл записной книжки IPython с расширением ipynb. Входные ячейки в предыдущем примере сохраняются как sine.ipynb

%notebook sine.ipynb

% pinfo

Эта функция похожа на самоанализ объекта? персонаж. Чтобы получить информацию об объекте, используйте следующую команду -

%pinfo object

Это синоним object? или же ?object.

% точности

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

% pwd

Эта волшебная функция возвращает текущий рабочий каталог.

% pylab

Эта функция заполняет текущий сеанс IPython библиотеками matplotlib и numpy.

%отзыв

При выполнении без каких-либо параметров эта функция выполняет предыдущую команду.

Обратите внимание, что в %recall n, число перед ним - номер ячейки ввода. Следовательно, вызывается команда из n-й ячейки. Вы можете вызывать команды в разделе ячеек, используя такую ​​команду, как%recall 1-4. Текущая ячейка ввода заполняется вызванной ячейкой, и курсор мигает, пока не будет нажата клавиша ввода.

%бежать

Эта команда запускает скрипт Python из оболочки IPython.

%время

Эта команда отображает время, необходимое среде IPython для выполнения выражения Python.

% timeit

Эта функция также отображает время, необходимое среде IPython для выполнения выражения Python. Для выполнения оператора или выражения Python по времени используется модуль timeit. Эта функция может использоваться как магия линий и ячеек, как описано здесь -

  • В line mode вы можете рассчитать время в одну строку.

  • В cell mode, инструкция в первой строке используется в качестве кода настройки, а тело ячейки синхронизируется. Тело ячейки имеет доступ к любым переменным, созданным в установочном коде.

%ВОЗ

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

Магическая функция IPython Custom Line Magic

Основная библиотека IPython содержит декоратор register_line_magic. Пользовательская функция преобразуется в линейную магическую функцию с помощью этого декоратора.