Este escrito fue analizado por nuestros especialistas así se garantiza la exactitud de este post.
Solución:
%pylab
es un funcion magica en ipython.
Las funciones mágicas en ipython siempre comienzan con el signo de porcentaje (%) seguido sin espacios por un pequeño texto string; en esencia, las funciones mágicas de ipython definen atajos particularmente útiles para el trabajo interactivo, por ejemplo, para darle una idea de cómo funcionan las funciones mágicas en python, algunas de mis favoritas:
-
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 (particularmente para fragmentos de varias líneas que normalmente provocarían que se lanzara un _IndentationError_):
%paste
Cuando el %pylab
La función mágica se ingresa en el indicador de IPython, activa la importación de varios módulos dentro de Matplotlib.
¿Qué módulos? bueno, los subsumidos bajo el pilab interfaz.
La impresionante biblioteca de trazado de Matplotlib tiene dos interfaces distintas: una pitónica y la original similar a MATLAB destinada a trazar en el indicador interactivo.
El primero suele importarse así:
from matplotlib import pyplot as PLT
De hecho, pyplot tiene su propia función mágica de pitón mágico
%pyplot
¿Por qué dos interfaces diferentes? La interfaz original de Matplotlib era pylab; solo más tarde se agregó la interfaz pythonic. Las secuencias de comandos y el desarrollo de aplicaciones no eran los principales casos de uso de Matplotlib cuando comenzó el proyecto, sino el trazado en el shell de python.
Aparentemente, John Hunter (el creador de Matplotlib) quería incluir el trazado interactivo en python, por lo que envió un parche al proyecto IPython de Fernando Perez (FP). FP era estudiante de doctorado en ese momento e informó a JH que no podría revisar el camino durante algún tiempo. Como resultado, JH creó Matplotlib. La importancia es que Matplotlib comenzó como un esquema de trazado basado en shell.
la interfaz de pylab es de hecho más adecuada para el trabajo interactivo:
from pylab import *
x, y = arange(10), cos(x/2)
plot(x, y)
show()
y usando 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 una herramienta de transición y la recomendación actual es que no deberías usarlo. La razón principal es que los siguientes conjuntos de comandos importan demasiado en el espacio de nombres global y tampoco le permiten cambiar el modo de matplotlib de UI a QT o algo más. Puede obtener la historia 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 %pylab
lo hace:
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 en su lugar al comienzo de mi cuaderno:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
Documentación más reciente sobre la magia de IPython aquí.
La función mágica a menudo está presente en forma de sintaxis tipo shell, pero está bajo la función python del capó. La sintaxis y la posibilidad de asignación son similares a las de la sintaxis 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 el %pylab
magia aquí.
%pylab [--no-import-all] [gui]
Cargue numpy y matplotlib para trabajar de forma interactiva.
Esta función le permite activar pylab (soporte para matplotlib, numpy e 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 *