Introducción a IPython Jupyter

¿Que es Jupyter?

Una de las características más útiles de Python es su intérprete interactivo. Esto permite el ensayo muy rápido de ideas. Sin embargo, el intérprete suministrado con la distribución estándar de Python es algo limitada para el uso interactivo extendida.

El objetivo de IPython es crear un entorno completo para la computación interactiva y exploratorio. Para apoyar este objetivo, IPython tiene tres componentes principales:

  • Un terminal de Python interactiva mejorada.
  • Un modelo de comunicación de los dos procesos desacoplado, lo que permite que varios clientes se conectan a un núcleo de cálculo, más notablemente el portátil basado en la web
  • Una arquitectura de computación paralela interactiva.

Jupyter (originalmente llamado IPython) fue desarrollado por Fernando Perez pensando en facilitar la reproducibilidad científica. Hoy en día cuenta con un gran número de colaboradores.

Corriendo Jupyter

Existen tres formas de correr Jupyter:

  • Terminal

    $ ipython
  • Consola Qt

    $ jupyter qtconsole
  • Notebook

    $ jupyter notebook

Comenzemos

In [1]:
import numpy as np

Tab nos completa o nos muestra las opciones (usa un mismo namespace para todo el notebook)

In [2]:
a = np.array([1, 2, 3])
a.

Shift-Tab nos da la documentación de la función - método

In [3]:
np.array()

Magic

Jupyter define las magic que son comando (generalmente comienzan con %) que nos permite, entre varias cosas, hacer uso de nuestro shell, correr código, medir tiempos, etc.

In [4]:
%%timeit 

a = 0
for i in range(10000):
    a += 1
1000 loops, best of 3: 1.5 ms per loop
In [5]:
!!ls
Out[5]:
['Hands-On',
 'imgs',
 'introduccion_a_python.pdf',
 'introduccion_a_python.sla',
 'Introducción_IPython.ipynb']

Podemos correr coódigo R y capturar la salida como variables para Python. Se necesita el paquete rpy2

De IPython a Jupyter

El cambio de nombre, vino por un gran cambio en el proyecto. La nueva versión del notebook nos permite cargar kernels de Julia, PYthon o R

Introduciendo texto

Cambiando la celda de codigo a markdown podemos introducir texto, link, latex

$$ a^{2} = b^{2} + c^{2} \;\;\; a, b, c\; \exists\; N $$

Imagenes, videos, etc

In [9]:
from IPython.display import YouTubeVideo
YouTubeVideo("bxtLxUh03gc")
Out[9]:

Ciencia reproducible

Podemos subir el notebook a nuestro servido git preferido y luego con nbviewer renderizarlo para que alguien lo vea.

Por ej, este notebook

In [6]:
#Este css es trabajo de @LorenaABarba y su grupo
from IPython.core.display import HTML
css_file = '../css/personal.css'
HTML(open(css_file, "r").read())
Out[6]:
Licencia

El código esta licenciado bajo MIT.

La documentación bajo:

Creative Commons License
This work is licensed under a Creative Commons Attribution 4.0 International License.