ipython & jupyter

37
Fernando Pérez (@fperez_org & [email protected]) LBL & UC Berkeley Computación interactiva en “Data Science” IPython & Jupyter

Upload: big-data-colombia

Post on 19-Jan-2017

504 views

Category:

Data & Analytics


1 download

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

IPython: CU Boulder, 2001O, cómo evitar trabajar en una tesis doctoral de física de partículas

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

El crédito es de todo el equipo

Y más de 500 otros contribuyen en la comunidad

Financiación y colaboraciones

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)

2011: The IPython Notebook

❖ Cliente para la web

❖ Texto & matemática

❖ Código

❖ Resultados

De IPython al Proyecto Jupyter

Una arquitectura simple y genérica

Más allá de Python: kernels en muchos lenguajes

❖ IPython “Oficial", nuestro.

❖ IJulia

❖ IRKernel

❖ IHaskell

❖ IFSharp

❖ Ruby

❖ IScala

❖ IErlang

❖ Muchos más! > 50

“¿Porqué se llama IPython,

si sirve para Julia, R, Haskell, Ruby, … ?”

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

El protocolo Jupyter es agnóstico al lenguaje

u alj i

El Ecosistema del Notebook Jupyter

JupyterHub: soporte multiusuario

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

Estas fundaciones se han convertido en infraestructura

Industria: Microsoft, IBM, Google, …

bqplot: gráficos interactivos de Bloomberg

http://github.com/bloomberg/bqplot

Thebe, de O’Reilly: kernels como servicio

Más de 500,000 notebooks en GitHub

Desde Mayo 6 del 2015

Una colaboración en la Unión Europea

¡Gracias!

@fperez_org [email protected] @ProjectJupyter @IPythonDev

Ensáyelo en try.jupyter.org