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.