IPython - Comandos mágicos

Comandos ou funções mágicas são uma das melhorias importantes que o IPython oferece em comparação com o shell Python padrão. Esses comandos mágicos têm como objetivo resolver problemas comuns na análise de dados usando Python. Na verdade, eles controlam o comportamento do próprio IPython.

Comandos mágicos atuam como funções convenientes onde a sintaxe Python não é a mais natural. Eles são úteis para incorporar sintaxe Python inválida em seu fluxo de trabalho.

Tipos de comandos mágicos

Existem dois tipos de comandos mágicos -

  • Magias de linha
  • Magia celular

Line Magics

Eles são semelhantes às chamadas de linha de comando. Eles começam com% personagem. O resto da linha é seu argumento passado sem parênteses ou aspas. Magias de linha podem ser usadas como expressão e seu valor de retorno pode ser atribuído a variável.

Cell Magics

Eles têm %% prefixo de caractere. Ao contrário das funções de magia de linha, eles podem operar em várias linhas abaixo de sua chamada. Eles podem, de fato, fazer modificações arbitrárias na entrada que recebem, que nem precisam ser um código Python válido. Eles recebem todo o bloco como uma única string.

Para saber mais sobre funções mágicas, as magias embutidas e suas docstrings, use o comando magic. As informações de uma função mágica específica são obtidas por%magicfunction?Comando. Vamos agora descrever alguns dos comandos internos mágicos de linha e célula.

Magias de linha integradas

%autocall [mode]

Esta função mágica torna uma função chamada automaticamente sem a necessidade de usar parênteses. Leva três parâmetros de modo possíveis:0 (off), 1 (smart) is default ou 2 (always on).

% automagic

As funções mágicas podem ser chamadas sem a necessidade de digitar o% inicial se definido como 1. Sem argumentos, ele liga / desliga. Para desativar, defina como 0.

O exemplo a seguir mostra uma função mágica %pwd (exibe o diretório de trabalho atual) sendo chamado sem% quando% automagic definido como 1

%CD

Esta linha mágica muda o diretório atual. Este comando mantém automaticamente uma lista interna de diretórios que você visita durante sua sessão IPython, na variável _dh. Você também pode fazer 'cd - <tab>' para ver o histórico do diretório convenientemente.

Uso

O comando% cd pode ser usado das seguintes maneiras -

  • %cd <dir> - Altera o diretório de trabalho atual para <dir>

  • %cd.. - Muda o diretório atual para o diretório pai

  • %cd - mudanças para o último diretório visitado.

% dhist

Este comando mágico imprime todos os diretórios que você visitou na sessão atual. Cada vez que o comando% cd é usado, esta lista é atualizada em_dh variável.

%editar

Este comando mágico chama o editor de texto padrão do sistema operacional atual (Notepad para Windows) para editar um script Python. O script é executado quando o editor é fechado.

% env

Este comando mágico listará todas as variáveis ​​de ambiente. Ele também lê o valor de uma variável específica ou define o valor da variável de ambiente.

Usage

O comando% cd pode ser usado das seguintes maneiras -

  • %env - Lista todas as variáveis ​​de ambiente

  • %env var - Obtém valor para var

  • %env var val - Define o valor para var

% gui [GUINAME]

Quando usado sem argumento, este comando ativa ou desativa a integração do loop de eventos da interface de usuário IPython. Com o argumento GUINAME, esta mágica substitui os kits de ferramentas GUI padrão pelo especificado.

Sr. Não. Comando e Descrição
1

%gui wx

habilitar integração de loop de evento wxPython

2

%gui qt4|qt

habilitar integração de loop de evento PyQt4

3

%gui qt5

habilitar integração de loop de evento PyQt5

4

%gui gtk

habilitar integração de loop de evento PyGTK

5

%gui gtk3

habilitar integração de loop de evento Gtk3

6

%gui tk

habilitar integração de loop de evento Tk

7

%gui osx

habilitar a integração do loop de evento Cocoa

8

(requer% matplotlib 1.1)

9

%gui

desabilitar toda integração de loop de evento

% lsmagic

Exibe todas as funções mágicas atualmente disponíveis

% matplotlib

Esta função ativa o suporte interativo matplotlib durante uma sessão IPython. No entanto, ele não importa a biblioteca matplotlib. O kit de ferramentas GUI padrão matplotlib é TkAgg. Mas você pode solicitar explicitamente um back-end de GUI diferente. Você pode ver uma lista dos back-ends disponíveis, conforme mostrado -

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

A sessão IPython mostrada aqui plota uma onda senoidal usando qt kit de ferramentas -

Ao usar o notebook Jupyter, a diretiva inline% matplotlib exibe a saída do gráfico apenas no navegador.

%caderno

Esta função converte o histórico atual do IPython em um arquivo de notebook IPython com extensão ipynb. As células de entrada no exemplo anterior são salvas como sine.ipynb

%notebook sine.ipynb

% pinfo

Esta função é semelhante à introspecção de objetos? personagem. Para obter informações sobre um objeto, use o seguinte comando -

%pinfo object

Isso é sinônimo de object? ou ?object.

%precisão

Esta função mágica restringe um resultado de ponto flutuante a dígitos especificados após decimal.

% pwd

Esta função mágica retorna o diretório de trabalho atual.

% pylab

Esta função preenche a sessão IPython atual com matplotlib e bibliotecas numpy.

% recall

Quando executada sem nenhum parâmetro, esta função executa o comando anterior.

Observe que em %recall n, o número na frente dele é o número da célula de entrada. Portanto, o comando na enésima célula é recuperado. Você pode recuperar comandos em seções de células usando comandos como%recall 1-4. A célula de entrada atual é preenchida com a célula recuperada e o cursor pisca até que a tecla Enter seja pressionada.

%corre

Este comando executa um script Python de dentro do shell IPython.

%Tempo

Este comando exibe o tempo necessário para o ambiente IPython para executar uma expressão Python.

% timeit

Esta função também exibe o tempo exigido pelo ambiente IPython para executar uma expressão Python. A execução de tempo de uma instrução ou expressão Python usa o módulo timeit. Esta função pode ser usada tanto como linha quanto como magia de célula, conforme explicado aqui -

  • Dentro line mode você pode cronometrar uma única linha.

  • Dentro cell mode, a instrução na primeira linha é usada como código de configuração e o corpo da célula é cronometrado. O corpo da célula tem acesso a quaisquer variáveis ​​criadas no código de configuração.

%quem

Esta linha mágica imprime todas as variáveis ​​interativas, com alguma formatação mínima. Se algum argumento for fornecido, apenas as variáveis ​​cujo tipo corresponde a um desses são impressas.

Função IPython Custom Line Magic

A biblioteca principal do IPython contém o decorador register_line_magic. Uma função definida pelo usuário é convertida em uma função mágica de linha usando este decorador.