IPython - Commandes magiques

Les commandes magiques ou les fonctions magiques sont l'une des améliorations importantes offertes par IPython par rapport au shell Python standard. Ces commandes magiques sont destinées à résoudre des problèmes courants dans l'analyse de données à l'aide de Python. En fait, ils contrôlent le comportement d'IPython lui-même.

Les commandes magiques agissent comme des fonctions pratiques où la syntaxe Python n'est pas la plus naturelle. Ils sont utiles pour incorporer une syntaxe python non valide dans leur flux de travail.

Types de commandes magiques

Il existe deux types de commandes magiques -

  • Magie de ligne
  • Magie cellulaire

Magie de ligne

Ils sont similaires aux appels de ligne de commande. Ils commencent par% character. Le reste de la ligne est son argument passé sans parenthèses ni guillemets. La magie des lignes peut être utilisée comme expression et leur valeur de retour peut être affectée à une variable.

Magie cellulaire

Ils ont le préfixe de caractère %%. Contrairement aux fonctions de magie de ligne, ils peuvent fonctionner sur plusieurs lignes en dessous de leur appel. Ils peuvent en fait apporter des modifications arbitraires à l'entrée qu'ils reçoivent, qui n'ont même pas besoin d'être un code Python valide. Ils reçoivent le bloc entier comme une seule chaîne.

Pour en savoir plus sur les fonctions magiques, les magies intégrées et leurs docstrings, utilisez la commande magic. L'information d'une fonction magique spécifique est obtenue par%magicfunction?Commander. Décrivons maintenant certaines des commandes de magie de ligne et de cellule intégrées.

Magies en ligne intégrées

%autocall [mode]

Cette fonction magique rend une fonction automatiquement appelable sans avoir à utiliser de parenthèses. Il faut trois paramètres de mode possibles:0 (off), 1 (smart) is default ou 2 (always on).

% automagique

Les fonctions magiques peuvent être appelées sans avoir à taper le% initial si défini à 1. Sans arguments, il bascule sur on / off. Pour désactiver, réglez sur 0.

L'exemple suivant montre une fonction magique %pwd (affiche le répertoire de travail actuel) appelé sans% de début lorsque% automagic est défini sur 1

%CD

Cette magie de ligne change le répertoire courant. Cette commande maintient automatiquement une liste interne des répertoires que vous visitez pendant votre session IPython, dans la variable _dh. Vous pouvez également faire 'cd - <tab>' pour voir l'historique des répertoires de manière pratique.

Usage

La commande% cd peut être utilisée des manières suivantes -

  • %cd <dir> - Change le répertoire de travail actuel en <dir>

  • %cd.. - Change le répertoire actuel en répertoire parent

  • %cd - passe au dernier répertoire visité.

% dhist

Cette commande magique imprime tous les répertoires que vous avez visités dans la session en cours. Chaque fois que la commande% cd est utilisée, cette liste est mise à jour dans_dh variable.

%Éditer

Cette commande magique fait appel à l'éditeur de texte par défaut du système d'exploitation actuel (Bloc-notes pour Windows) pour éditer un script Python. Le script est exécuté à la fermeture de l'éditeur.

% env

Cette commande magique listera toutes les variables d'environnement. Il lit également la valeur d'une variable particulière ou définit la valeur de la variable d'environnement.

Usage

La commande% cd peut être utilisée des manières suivantes -

  • %env - Répertorie toutes les variables d'environnement

  • %env var - Obtient la valeur de var

  • %env var val - Définit la valeur de var

% gui [GUINAME]

Lorsqu'elle est utilisée sans argument, cette commande active ou désactive l'intégration de la boucle d'événements de l'interface graphique IPython. Avec l'argument GUINAME, cette magie remplace les toolkits GUI par défaut par celui spécifié.

N ° Sr. Commande et description
1

%gui wx

activer l'intégration de la boucle d'événements wxPython

2

%gui qt4|qt

activer l'intégration de la boucle d'événements PyQt4

3

%gui qt5

activer l'intégration de la boucle d'événements PyQt5

4

%gui gtk

activer l'intégration de la boucle d'événements PyGTK

5

%gui gtk3

activer l'intégration de la boucle d'événements Gtk3

6

%gui tk

activer l'intégration de la boucle d'événements Tk

sept

%gui osx

activer l'intégration de la boucle d'événements Cocoa

8

(nécessite% matplotlib 1.1)

9

%gui

désactiver toute l'intégration de la boucle d'événements

% lsmagic

Affiche toutes les fonctions magiques actuellement disponibles

% matplotlib

Cette fonction active la prise en charge interactive de matplotlib lors d'une session IPython. Cependant, il n'importe pas la bibliothèque matplotlib. Le toolkit GUI par défaut de matplotlib est TkAgg. Mais vous pouvez demander explicitement un backend GUI différent. Vous pouvez voir une liste des backends disponibles comme indiqué -

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

La session IPython présentée ici trace une onde sinusoïdale en utilisant qt boîte à outils -

Lors de l'utilisation du notebook Jupyter, la directive en ligne% matplotlib affiche la sortie du tracé dans le navigateur uniquement.

%carnet

Cette fonction convertit l'historique IPython actuel en un fichier notebook IPython avec l'extension ipynb. Les cellules d'entrée dans l'exemple précédent sont enregistrées sous le nom sine.ipynb

%notebook sine.ipynb

% pinfo

Cette fonction est similaire à l'introspection d'objets? personnage. Pour obtenir des informations sur un objet, utilisez la commande suivante -

%pinfo object

Ceci est synonyme de object? ou ?object.

%précision

Cette fonction magique limite un résultat à virgule flottante aux chiffres spécifiés après la virgule.

% pwd

Cette fonction magique renvoie le répertoire de travail actuel.

% pylab

Cette fonction remplit la session IPython actuelle avec les bibliothèques matplotlib et numpy.

%rappel

Lorsqu'elle est exécutée sans aucun paramètre, cette fonction exécute la commande précédente.

Notez que dans %recall n, le numéro devant lui est le numéro de cellule d'entrée. Par conséquent, la commande dans la nième cellule est rappelée. Vous pouvez rappeler des commandes dans une section de cellules en utilisant une commande telle que%recall 1-4. La cellule d'entrée actuelle est remplie avec la cellule rappelée et le curseur clignote jusqu'à ce que la touche Entrée soit enfoncée.

%courir

Cette commande exécute un script Python à partir du shell IPython.

%temps

Cette commande affiche le temps requis par l'environnement IPython pour exécuter une expression Python.

% timeit

Cette fonction affiche également le temps requis par l'environnement IPython pour exécuter une expression Python. L'exécution temporelle d'une instruction ou d'une expression Python utilise le module timeit. Cette fonction peut être utilisée à la fois comme une magie de ligne et de cellule comme expliqué ici -

  • Dans line mode vous pouvez chronométrer une seule ligne.

  • Dans cell mode, l'instruction de la première ligne est utilisée comme code de configuration et le corps de la cellule est chronométré. Le corps de la cellule a accès à toutes les variables créées dans le code de configuration.

%qui

Cette magie de ligne imprime toutes les variables interactives, avec un formatage minimal. Si des arguments sont donnés, seules les variables dont le type correspond à l'un d'entre eux sont affichées.

Fonction IPython Custom Line Magic

La bibliothèque principale d'IPython contient le décorateur register_line_magic. Une fonction définie par l'utilisateur est convertie en une fonction magique de ligne à l'aide de ce décorateur.