IPython y la computación interactiva
Como ya he comentado en otra oportunidad, el lenguaje de programación con el que más me gusta interactuar es Python. Una de las características que han hecho a Python tan popular, ademas de su simple y hermosa sintaxis; es sin dudas su intérprete interactivo, el cual nos permite interactuar con el lenguaje y nuestra computadora en una forma rápida y sencilla, sin necesidad de andar compilando y ejecutando nuestros programas.
IPython, es un proyecto iniciado en el año 2001 por Fernando Perez, para llevar esta interactividad del interprete de Python hasta límites inimaginados. En estos últimos 13 años el proyecto ha crecido hasta convertirse en una de las herramientas más importantes en la computación científica moderna. IPython promueve un ambiente de trabajo de ejecutar-explorar en contraposición al tradicional modelo de desarrollo de software de editar-compilar-ejecutar. Es decir, que el problema computacional a resolver es más visto como todo un proceso de ejecucion de tareas, en lugar del tradicional modelo de producir una respuesta(output) a una pregunta(input). IPython tambien provee una estrecha integración con nuestro sistema operativo, permitiéndonos acceder facilmente a todos nuestros archivos desde la misma herramienta.
IPython ha llegado a convertirse en el ambiente de trabajo más popular para trabajar con el nuevo paradigma de la computación interactiva. Algunas de las caracteristicas sobresalientes de IPython son:
- Su poderoso shell interactivo.
- Notebook, su inteface web con soporte para código, texto, expresiones matemáticas, gráficos en linea y multimedia.
- Su soporte para poder realizar visualizaciones de datos en forma interactiva. IPython esta totalmente integrado con matplotlib.
- Su simple y flexible interface para trabajar con la computación paralela.
Instalación
Para poder instalar IPython en Linux, es muy fácil, solo debemos ejecutar el siguente comando:
1 |
sudo apt-get install ipython |
Instalar IPython en Windows, no es tan fácil, ya que el paquete es bastante complejo y tiene muchas dependencias. (Esto ayuda a dismitificar la famosa frase de que Linux es más dificil que Windows! :P).
La forma más sencilla de poder instalar IPython en Windows es instalando alguna de las distribuciones de Python que ya vienen armadas con los principales módulos. Yo les recomiendo la distribución Anaconda, que se puede descargar en forma gratuita y viene integrada con todos los principales paquetes de Python para el analisis de datos. Una vez que la descargan, simplemente siguen los pasos del instalador y listo, ya tendran todo un ambiente Python para trabajar en Windows.
Funciones básicas en IPython
Bueno, ahora que ya sabemos como instalarlo, es hora de ponerse a jugar un poco con el para poder ver con nuestros propios ojos todas las ventajas que nos ofrece IPython y su interactividad.
Para iniciar IPython desde la consola, debemos ingresar el comando “ipython“, el cual nos abrirá el shell interactivo para comenzar a trabajar. (En windows, si se instalaron Anaconda, van a poder encontrar el acceso directo en la siguiente ruta: inicio–>Todos los programas–>Anaconda–>IPython).
Impresion de resultados
Lo primero que podemos ver, es que podemos ejecutar arbitrariamente codigo Python simplemente tipeando la sentencia y presionando “Enter”. También podemos ver que si tipeamos alguna variable que acabamos de crear, IPython nos devuelve inmediatamente la impresión del objeto, como si hubiesemos usado el comando print de Python; lo mismo sucede si ejecutamos alguna función que devuelva un resultado. Incluso IPython nos permite utilizar estos Out[] como variables en sí mismas!.
Autocompletado con TAB
El autocompletado es una característica muy útil que no puede faltar en cualquier ambiente interactivo; nos permite ahorrarnos de escribir y también poder inspeccionar objetos rapidamente; se activa utilizando la tecla TAB. Lo que hace basicamente es buscar en el namespace, cualquier variable (objetos, funciones, etc.), que coincidan con los carectares que hemos escrito hasta el momento.
Ayuda
La ayuda de IPython nos permite leer la documentación de objetos, funciones, etc., así como el código fuente donde se definieron cuando este disponible. Se activa utilizando el sigo de interrogación “?”. Por ejemplo, si usamos el signo de interrogación, antes o despues del nombre de una variable, IPython nos mostrará una información general sobre el objecto; y si el objeto es una función, un método o un módulo, nos mostrará también su documentación. Para ver también el código fuente, debemos ustilizar el doble signo de interrogación “??”.
Visualizaciones interactivas
Parte del gran éxito de IPython en la computación científica y el analisis de datos, se debe a su gran integración con paquetes como sciPy y matplotlib. Para lograr esta integración, debemos ejecutar en primer lugar el comando “%pylab“. Otras opcion es abrir IPython directarmente con la función de pylab incorporada, para eso en lugar de abrir IPython con el comando “ipython”, lo hacemos con el comando:
1 |
ipython --pylab |
IPyton Notebook
El Notebook, es la herremaniente más sorprendente que posee IPython, y desde su aparación ha sido una verdedera revolución en el ambito cientifico de investigación y la enseñanza. El Notebook es una interface Web para IPython, donde podemos combinar la ejecución de código, texto, matemáticas, gráficos y multimedia en un único documento basado en la web. Además posee la ventaja de que estos Notebooks son muy fáciles de compartir ya que se pueden exportar facilmente a otros formatos, como ser HTML, PDF, etc., o incluso se pueden compartir directamente para ser visto por cualquier persona en la Web utilizando el servicio IPython Notebook Viewer.
Para utilizar IPython Notebook, debemos abrir IPython con el siguiente comando:
1 2 3 4 5 |
ipython notebook or ipython notebook --pylab #con la integracion con pylab. |
En Windows, lo van a poder encontrar también dentro de la carpeta “Anaconda”.
Cuando lo abran veran que les abrira su navegador por defecto con el Dashboad de IPython Notebook, para crear una Notebook, simplemente presionamos el boton “New Notebook”.
A continuación les dejo un video, donde se pueden ver las pricipales características que posee IPython Notebook.
Hasta aquí esta presentación de IPython, los invito a que lo utilicen, especialmente IPython Notebook, no se van a arrepentir! 😉
Saludos,