IPython - Comandos mágicos

Los comandos mágicos o las funciones mágicas son una de las mejoras importantes que ofrece IPython en comparación con el shell estándar de Python. Estos comandos mágicos están destinados a resolver problemas comunes en el análisis de datos utilizando Python. De hecho, controlan el comportamiento de IPython en sí.

Los comandos mágicos actúan como funciones convenientes donde la sintaxis de Python no es la más natural. Son útiles para incrustar sintaxis de Python no válida en su flujo de trabajo.

Tipos de comandos mágicos

Hay dos tipos de comandos mágicos:

  • Magia de línea
  • Magia celular

Magia de línea

Son similares a las llamadas de línea de comandos. Empiezan con el carácter%. El resto de la línea es su argumento pasado sin paréntesis ni comillas. Las magias de línea se pueden usar como expresión y su valor de retorno se puede asignar a una variable.

Magia celular

Tienen el prefijo de carácter %%. A diferencia de las funciones mágicas de línea, pueden operar en varias líneas debajo de su llamada. De hecho, pueden realizar modificaciones arbitrarias a la entrada que reciben, que ni siquiera necesitan ser un código Python válido. Reciben todo el bloque como una sola cadena.

Para saber más sobre las funciones mágicas, la magia incorporada y sus cadenas de documentación, use el comando mágico. La información de una función mágica específica se obtiene por%magicfunction?Mando. Describamos ahora algunos de los comandos mágicos de línea y celda incorporados.

Magia de línea incorporada

%autocall [mode]

Esta función mágica hace que una función se pueda llamar automáticamente sin tener que usar paréntesis. Toma tres posibles parámetros de modo:0 (off), 1 (smart) is default o 2 (always on).

% automágico

Las funciones mágicas se pueden llamar sin tener que escribir el% inicial si se establece en 1. Sin argumentos, se activa / desactiva. Para desactivar, establezca en 0.

El siguiente ejemplo muestra una función mágica %pwd (muestra el directorio de trabajo actual) se llama sin% inicial cuando% automagic se establece en 1

%discos compactos

Esta línea mágica cambia el directorio actual. Este comando mantiene automáticamente una lista interna de directorios que visita durante su sesión de IPython, en la variable _dh. También puede hacer 'cd - <tab>' para ver cómodamente el historial del directorio.

Uso

El comando% cd se puede utilizar de las siguientes formas:

  • %cd <dir> - Cambia el directorio de trabajo actual a <dir>

  • %cd.. - Cambia el directorio actual al directorio principal

  • %cd - cambios al último directorio visitado.

% dhist

Este comando mágico imprime todos los directorios que ha visitado en la sesión actual. Cada vez que se usa el comando% cd, esta lista se actualiza en_dh variable.

%editar

Este comando mágico llama al editor de texto predeterminado del sistema operativo actual (Bloc de notas para Windows) para editar un script de Python. El script se ejecuta mientras se cierra el editor.

% env

Este comando mágico enumerará todas las variables de entorno. También lee el valor de una variable particular o establece el valor de la variable de entorno.

Usage

El comando% cd se puede utilizar de las siguientes formas:

  • %env - Lista todas las variables de entorno

  • %env var - Obtiene valor para var

  • %env var val - Establece valor para var

% gui [GUINAME]

Cuando se usa sin argumentos, este comando habilita o deshabilita la integración del bucle de eventos de la GUI de IPython. Con el argumento GUINAME, esta magia reemplaza los kits de herramientas GUI predeterminados por el especificado.

No Señor. Comando y descripción
1

%gui wx

habilitar la integración de bucle de eventos wxPython

2

%gui qt4|qt

habilitar la integración de bucle de eventos PyQt4

3

%gui qt5

habilitar la integración de bucle de eventos PyQt5

4

%gui gtk

habilitar la integración de bucle de eventos PyGTK

5

%gui gtk3

habilitar la integración de bucle de eventos Gtk3

6

%gui tk

habilitar la integración de bucle de eventos Tk

7

%gui osx

habilitar la integración de bucle de eventos Cocoa

8

(requiere% matplotlib 1.1)

9

%gui

deshabilitar toda la integración de bucle de eventos

% lsmagic

Muestra todas las funciones mágicas disponibles actualmente

% matplotlib

Esta función activa el soporte interactivo de matplotlib durante una sesión de IPython. Sin embargo, no importa la biblioteca matplotlib. El kit de herramientas GUI predeterminado de matplotlib es TkAgg. Pero puede solicitar explícitamente un backend GUI diferente. Puede ver una lista de los backends disponibles como se muestra:

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

La sesión de IPython que se muestra aquí traza una onda sinusoidal usando qt kit de herramientas -

Al usar el cuaderno Jupyter, la directiva en línea% matplotlib muestra la salida del gráfico solo en el navegador.

%cuaderno

Esta función convierte el historial actual de IPython en un archivo de cuaderno de IPython con extensión ipynb. Las celdas de entrada del ejemplo anterior se guardan como sine.ipynb

%notebook sine.ipynb

% pinfo

¿Esta función es similar a la introspección de objetos? personaje. Para obtener información sobre un objeto, use el siguiente comando:

%pinfo object

Esto es sinónimo de object? o ?object.

%precisión

Esta función mágica restringe un resultado de punto flotante a dígitos específicos después del decimal.

% pwd

Esta función mágica devuelve el directorio de trabajo actual.

% pylab

Esta función completa la sesión actual de IPython con matplotlib y bibliotecas numpy.

%recordar

Cuando se ejecuta sin ningún parámetro, esta función ejecuta el comando anterior.

Tenga en cuenta que en %recall n, el número delante de él es el número de celda de entrada. Por lo tanto, se recupera el comando de la enésima celda. Puede recuperar comandos en la sección de celdas utilizando comandos como%recall 1-4. La celda de entrada actual se llena con la celda recuperada y el cursor parpadea hasta que se presiona la tecla Intro.

%correr

Este comando ejecuta un script de Python desde dentro del shell de IPython.

%hora

Este comando muestra el tiempo requerido por el entorno de IPython para ejecutar una expresión de Python.

%cronométralo

Esta función también muestra el tiempo requerido por el entorno de IPython para ejecutar una expresión de Python. La ejecución temporal de una declaración o expresión de Python utiliza el módulo timeit. Esta función se puede utilizar tanto como magia de línea como de celda, como se explica aquí:

  • En line mode puedes cronometrar una sola línea.

  • En cell mode, la declaración en la primera línea se usa como código de configuración y el cuerpo de la celda está cronometrado. El cuerpo de la celda tiene acceso a cualquier variable creada en el código de configuración.

%OMS

Esta línea mágica imprime todas las variables interactivas, con un formato mínimo. Si se proporciona algún argumento, solo se imprimen las variables cuyo tipo coincide con uno de estos.

Función mágica de línea personalizada de IPython

La biblioteca central de IPython contiene el decorador register_line_magic. Una función definida por el usuario se convierte en una función mágica de línea usando este decorador.