¿Qué es% pylab?

Sigo viendo a la gente usar %pylab en varios fragmentos de código, particularmente con iPython. Sin embargo, no puedo ver dónde se menciona %pylab en ningún lugar de Learning Python (y los otros pocos libros de Python que tengo) y no estoy realmente seguro de lo que significa.

Estoy seguro de que la respuesta es simple, pero ¿puede alguien iluminarme?

Related of "¿Qué es% pylab?"

%pylab es una función mágica en ipython .

Las funciones mágicas en pylab siempre comienzan con el signo de porcentaje (%) seguido sin espacios por una pequeña cadena de texto; en esencia, las funciones mágicas de ipython definen accesos directos particularmente útiles para el trabajo interactivo, por ejemplo, para darle una idea de cómo funcionan las funciones mágicas en python, algunos de mis favoritos:

  • para ver el contenido del directorio cwd:

     %ls 
  • para ejecutar un script en ipython usando un espacio de nombres vacío, escriba espacio y luego un nombre de script:

     %run 
  • para ejecutar un fragmento de código (especialmente para fragmentos de varias líneas que generalmente causan que se genere un _IndentationError_):

     %paste 

Cuando se ingresa la función %pylab magic en el indicador de IPython, se activa la importación de varios módulos dentro de Matplotlib.

¿Qué módulos? Bueno, los subsumidos bajo la interfaz pylab .

La asombrosa biblioteca de gráficos de Matplotlib tiene dos interfaces distintas: una pythonica y la original de MATLAB, diseñada para el trazado en el indicador interactivo.

El primero se suele importar como tal:

 from matplotlib import pyplot as PLT 

De hecho, pyplot tiene su propia función mágica python magic

 %pyplot 

¿Por qué dos interfaces diferentes? La interfaz original de Matplotlib era pylab; Sólo más tarde se agregó la interfaz pythonica. Las secuencias de comandos y el desarrollo de aplicaciones no fueron los casos principales de uso de Matplotlib cuando se inició el proyecto, mientras que el trazado en el shell de python era.

Al parecer, John Hunter (el creador de Matplotlib) quería incluir el trazado interactivo en python, por lo que presentó un parche para el proyecto IPython de Fernando Perez (FP). FP era un estudiante de doctorado en ese momento e informó a JH que no podría revisar el camino por algún tiempo. Como resultado, JH creó Matplotlib. El significado es que Matplotlib comenzó como un esquema de trazado basado en shell.

La interfaz de Pylab es más adecuada para el trabajo interactivo:

 from pylab import * x, y = arange(10), cos(x/2) plot(x, y) show() 

y utilizando la interfaz pyplot:

 from matplotlib import pyplot as PLT import numpy as NP x, y = NP.arange(10), NP.cos(x/2) fig = PLT.figure() ax1 = fig.add_subplot(111) ax1.plot(x, y) PLT.show() 

%pylab es un atajo para escribir todos los comandos a continuación, que en esencia agrega numpy y matplotlib a su sesión. Esto se agregó en IPython como herramienta de transición y la recomendación actual es que no debe usarlo . La razón principal es que debajo de los conjuntos de comandos se importan demasiado en el espacio de nombres global y tampoco te permite cambiar el modo para matplotlib de UI a QT o algo más. Puede obtener el historial y el razonamiento detrás de esto en http://nbviewer.ipython.org/github/Carreau/posts/blob/master/10-No-PyLab-Thanks.ipynb?create=1 .

Esto es lo que hace %pylab :

 import numpy import matplotlib from matplotlib import pylab, mlab, pyplot np = numpy plt = pyplot from IPython.core.pylabtools import figsize, getfigs from pylab import * from numpy import * 

Esto es lo que uso al comienzo de mi cuaderno:

 import pandas as pd import numpy as np import matplotlib.pyplot as plt %matplotlib inline 

%pylab es una “función mágica” a la que puede llamar dentro de IPython, o Python interactivo . Al invocarlo, el intérprete de IPython importará matplotlib y los módulos NumPy para que tenga un acceso conveniente a sus funciones. Como ejemplo,

 rich@rich-ubuntu:~/working/fb_recruit/working$ ipython Python 2.7.6 |Anaconda 1.8.0 (64-bit)| (default, Nov 11 2013, 10:47:18) Type "copyright", "credits" or "license" for more information. IPython 1.1.0 -- An enhanced Interactive Python. ? -> Introduction and overview of IPython's features. %quickref -> Quick reference. help -> Python's own help system. object? -> Details about 'object', use 'object??' for extra details. In [1]: arange(4) --------------------------------------------------------------------------- NameError Traceback (most recent call last)  in () ----> 1 arange(4) NameError: name 'arange' is not defined In [2]: %pylab Using matplotlib backend: Qt4Agg Populating the interactive namespace from numpy and matplotlib In [3]: arange(4) Out[3]: array([0, 1, 2, 3]) In [4]: 

Documentación más reciente sobre las magias de IPython aquí .

La función de magia está a menudo presente en forma de syntax similar a una concha, pero están bajo la función de python de capucha. La syntax y la posibilidad de asignación son similares a las de la syntax bang (!), Pero con más flexibilidad y potencia. La función mágica comienza con un signo de porcentaje (%) o doble porcentaje (%%).

Un poco aquí y más específicamente sobre la magia %pylab aquí .

  %pylab [--no-import-all] [gui] 

Cargue numpy y matplotlib para trabajar interactivamente.

Esta función le permite activar pylab (matplotlib, numpy y soporte interactivo) en cualquier momento durante una sesión de IPython.

%pylab realiza las siguientes importaciones:

 import numpy import matplotlib from matplotlib import pylab, mlab, pyplot np = numpy plt = pyplot from IPython.display import display from IPython.core.pylabtools import figsize, getfigs from pylab import * from numpy import * 

Como su nombre lo indica, Pylab es un extremo frontal similar a MATLAB para hacer matemáticas en Python. iPython tiene soporte específico para Pylab, que se invoca mediante el comando %pylab magic.