ipython & jupyter
TRANSCRIPT
Fernando Pérez(@fperez_org & [email protected])
LBL & UC Berkeley
Computación interactiva en “Data Science”
IPython & Jupyter
–Hamming'62
“The purpose of computing is insight, not numbers”
“El objetivo de la computación es la comprensión, no los números”
El ciclo de una idea científica
1. Trabajo individual exploratorio
2. Desarrollo en Colaboración
3. Ejecución en Parallel (HPC, nube, ...)
4. Publicación & comunicación (de manera reproducible!)
5. Educación
6. Goto 1
Tratamos esto como un problema integrado y coherente
1. Trabajo individual exploratorio
2. Desarrollo en Colaboración
3. Ejecución en Parallel (HPC, nube, ...)
4. Publicación & comunicación (de manera reproducible!)
5. Educación
6. Goto 1
El ciclo de una idea científica
Noviembre del 2001: “Un hack de una tarde” " ❖ Script Python de 259 líneas.
❖ sys.ps1 -> In [N].
❖ sys.displayhook -> Out[N], cache de resultados.
❖ Graficación, Numeric, etc.
Hoy día ❖ Cientos de miles de líneas de código ❖ Cientos de personas han contribuído ❖ Múltiples individuos trabajando de tiempo completo
Más allá de la terminal❖ El REPL como protocolo de red❖ Kernels
❖ ejecución de código
❖ Clientes
❖ Leer la entrada
❖ Presentar resultado
Unas pocas abstracciones soportan clientes sofisticados
Carlos Córdoba, Físico de la U. Nal de Bogotá, Continuum (charla previa)
Más allá de Python: kernels en muchos lenguajes
❖ IPython “Oficial", nuestro.
❖ IJulia
❖ IRKernel
❖ IHaskell
❖ IFSharp
❖ Ruby
❖ IScala
❖ IErlang
❖ Muchos más! > 50
IPython … Jupyter
❖ Interactive Python shell at the terminal
❖ Kernel for this protocol in Python
❖ Tools for Interactive Parallel computing
❖ Network protocol for interactive computing
❖ Clients for protocol❖ Console❖ Qt Console
❖ Notebook
❖ Notebook file format & tools (nbconvert...)
❖ Nbviewer
Language Agnostic
Ideas fundamentales: Internet
❖ HTTP y HTML:
❖ Un protocolo para transferir contenido.
❖ Un formato para representarlo.
Ideas fundamentales: Jupyter
Protocolo REPL Formato de documento
https://github.com/CamDavidsonPilon/Probabilistic-Programming-and-Bayesian-Methods-for-Hackers
SUB SUB DEAL
Client
SUBDEALDEALDEAL
ROUTPUB ROUTROUTKernel
ØMQ + JSON
nbviewer: compartir notebooks sin esfuerzo
❖ Leer notebooks sin instalar nada
❖ Comparta una URL
❖ nbviewer.jupyter.org
Blogging científico
Jake van der Plas @ UW
http://blogs.scientificamerican.com/sa-visual/2014/09/16/visualizing-4-
dimensional-asteroids
Libros ejecutables
❖ Libro Springer
❖ Capítulos: Notebooks IPython❖ Presentados en su blog
❖ Disponible en Github
Python for Signal Processing, por José Unpingco
Cursos Universitarios
Jupyter en Educación (lista de correo):
https://groups.google.com/forum/#!forum/jupyter-education
Berkeley: Foundations of Data Science
http://data8.org
❖ Nuevo currículo para todos los estudiantes de Berkeley
❖ Libro interactivo hecho de Notebooks Jupyter
❖ Curso en JupyterHub
Libros sobre IPython
IPython Interactive Computing and Visualization Cookbook
Learning IPython for Interactive Computing and Data Visualization
Cyrille Rossantcyrille.rossant.net
Cambiando la cultura científica
http://www.nature.com/news/interactive-notebooks-sharing-the-code-1.16261
Papers interactivos: ¿el futuro?
http://www.nature.com/news/ipython-interactive-demo-7.21492?article=1.16261
¡Mucho más! La galería de IPython
https://github.com/ipython/ipython/wiki/A-gallery-of-interesting-IPython-Notebooks