IPython - Comandi magici

I comandi magici o le funzioni magiche sono uno dei miglioramenti importanti offerti da IPython rispetto alla shell Python standard. Questi comandi magici hanno lo scopo di risolvere problemi comuni nell'analisi dei dati utilizzando Python. In effetti, controllano il comportamento di IPython stesso.

I comandi magici agiscono come comode funzioni in cui la sintassi di Python non è la più naturale. Sono utili per incorporare la sintassi python non valida nel loro flusso di lavoro.

Tipi di comandi magici

Esistono due tipi di comandi magici:

  • Linea magica
  • Magie cellulari

Line Magics

Sono simili alle chiamate della riga di comando. Iniziano con% carattere. Il resto della riga è il suo argomento passato senza parentesi o virgolette. Le linee magiche possono essere usate come espressioni e il loro valore di ritorno può essere assegnato alla variabile.

Cell Magics

Hanno un prefisso di caratteri %%. A differenza delle funzioni line magic, possono operare su più linee sotto la loro chiamata. Possono infatti apportare modifiche arbitrarie all'input che ricevono, che non deve nemmeno essere un codice Python valido. Ricevono l'intero blocco come una singola stringa.

Per saperne di più sulle funzioni magiche, le magie incorporate e le loro docstring, usa il comando magico. Le informazioni su una specifica funzione magica sono ottenute da%magicfunction?Comando. Descriviamo ora alcuni dei comandi di magia della cella e della linea incorporati.

Magie di linea incorporate

%autocall [mode]

Questa funzione magica rende una funzione richiamabile automaticamente senza dover usare le parentesi. Sono necessari tre possibili parametri di modalità:0 (off), 1 (smart) is default o 2 (always on).

% automagic

Le funzioni magiche sono richiamabili senza dover digitare la% iniziale se impostata su 1. Senza argomenti si attiva / disattiva. Per disattivare, impostare su 0.

L'esempio seguente mostra una funzione magica %pwd (visualizza la directory di lavoro presente) viene chiamato senza% iniziale quando% automagic è impostato su 1

%CD

Questa magia di linea cambia la directory corrente. Questo comando mantiene automaticamente un elenco interno delle directory che visiti durante la tua sessione IPython, nella variabile _dh. Puoi anche fare "cd - <tab>" per vedere comodamente la cronologia delle directory.

Utilizzo

Il comando% cd può essere utilizzato nei seguenti modi:

  • %cd <dir> - Cambia la directory di lavoro corrente in <dir>

  • %cd.. - Cambia la directory corrente nella directory principale

  • %cd - modifiche all'ultima directory visitata.

% dhist

Questo comando magico stampa tutte le directory che hai visitato nella sessione corrente. Ogni volta che viene utilizzato il comando% cd, questo elenco viene aggiornato in_dh variabile.

%modificare

Questo comando magico richiama l'editor di testo predefinito del sistema operativo corrente (Blocco note per Windows) per modificare uno script Python. Lo script viene eseguito alla chiusura dell'editor.

% env

Questo comando magico elencherà tutte le variabili d'ambiente. Legge anche il valore di una particolare variabile o imposta il valore della variabile d'ambiente.

Usage

Il comando% cd può essere utilizzato nei seguenti modi:

  • %env - Elenca tutte le variabili d'ambiente

  • %env var - Ottiene il valore per var

  • %env var val - Imposta il valore per var

% gui [GUINAME]

Se utilizzato senza argomenti, questo comando abilita o disabilita l'integrazione del ciclo di eventi della GUI IPython. Con l'argomento GUINAME, questa magia sostituisce il toolkit GUI predefinito con quello specificato.

Sr.No. Comando e descrizione
1

%gui wx

abilitare l'integrazione del loop di eventi wxPython

2

%gui qt4|qt

abilitare l'integrazione del loop di eventi PyQt4

3

%gui qt5

abilitare l'integrazione del loop di eventi PyQt5

4

%gui gtk

abilitare l'integrazione del loop di eventi PyGTK

5

%gui gtk3

abilitare l'integrazione del loop di eventi Gtk3

6

%gui tk

abilitare l'integrazione del loop di eventi Tk

7

%gui osx

abilitare l'integrazione del loop di eventi Cocoa

8

(richiede% matplotlib 1.1)

9

%gui

disabilitare tutta l'integrazione del loop di eventi

% lsmagic

Visualizza tutte le funzioni magiche attualmente disponibili

% matplotlib

Questa funzione attiva il supporto interattivo matplotlib durante una sessione IPython. Tuttavia, non importa la libreria matplotlib. Il toolkit GUI predefinito di matplotlib è TkAgg. Ma puoi richiedere esplicitamente un backend GUI diverso. Puoi vedere un elenco dei backend disponibili come mostrato -

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

La sessione IPython mostrata qui traccia un'onda sinusoidale usando qt toolkit -

Durante l'utilizzo di Jupyter Notebook, la direttiva inline% matplotlib mostra l'output del grafico solo nel browser.

%taccuino

Questa funzione converte la cronologia IPython corrente in un file notebook IPython con estensione ipynb. Le celle di input nell'esempio precedente vengono salvate come sine.ipynb

%notebook sine.ipynb

% pinfo

Questa funzione è simile all'introspezione degli oggetti? personaggio. Per ottenere informazioni su un oggetto, utilizzare il seguente comando:

%pinfo object

Questo è sinonimo di object? o ?object.

%precisione

Questa funzione magica limita un risultato in virgola mobile a cifre specificate dopo il decimale.

% pwd

Questa funzione magica restituisce l'attuale directory di lavoro.

% pylab

Questa funzione popola la sessione IPython corrente con le librerie matplotlib e numpy.

%richiamare

Quando viene eseguita senza alcun parametro, questa funzione esegue il comando precedente.

Nota che in %recall n, il numero davanti è il numero di cella di input. Quindi viene richiamato il comando nell'ennesima cella. È possibile richiamare i comandi nella sezione delle celle utilizzando comandi come%recall 1-4. La cella di input corrente viene popolata con la cella richiamata e il cursore lampeggia finché non viene premuto il tasto Invio.

%correre

Questo comando esegue uno script Python dall'interno della shell IPython.

%tempo

Questo comando visualizza il tempo richiesto dall'ambiente IPython per eseguire un'espressione Python.

% timeit

Questa funzione mostra anche il tempo richiesto dall'ambiente IPython per eseguire un'espressione Python. L'esecuzione temporale di un'istruzione o espressione Python utilizza il modulo timeit. Questa funzione può essere utilizzata sia come linea che come magia cellulare come spiegato qui -

  • In line mode puoi cronometrare una singola riga.

  • In cell mode, l'istruzione nella prima riga viene utilizzata come codice di configurazione e il corpo della cella è temporizzato. Il corpo della cella ha accesso a tutte le variabili create nel codice di configurazione.

%chi

Questa magia della linea stampa tutte le variabili interattive, con una formattazione minima. Se vengono forniti argomenti, vengono stampate solo le variabili il cui tipo corrisponde a uno di questi.

Funzione IPython Custom Line Magic

La libreria principale di IPython contiene il decoratore register_line_magic. Una funzione definita dall'utente viene convertita in una funzione magica di linea utilizzando questo decoratore.