SlideShare una empresa de Scribd logo
1 de 37
Descargar para leer sin conexión
Fernando Pérez
(@fperez_org & fperez@lbl.gov)
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, 2001
O, 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
SUB
DEALDEALDEAL
ROUTPUB ROUTROUT
Kernel
Ø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 Rossant
cyrille.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 fperez@lbl.gov
@ProjectJupyter @IPythonDev
Ensáyelo en
try.jupyter.org

Más contenido relacionado

Similar a IPython & Jupyter

Screencast aprende python - parte 1
Screencast   aprende python - parte 1Screencast   aprende python - parte 1
Screencast aprende python - parte 1
Noe Nieto
 
Trabajo de python
Trabajo de pythonTrabajo de python
Trabajo de python
Edgar Lemus
 
Clase 2 - Introducción a la programación con Python I.pptx
Clase 2 - Introducción a la programación con Python I.pptxClase 2 - Introducción a la programación con Python I.pptx
Clase 2 - Introducción a la programación con Python I.pptx
jgs07
 
Intro Python
Intro PythonIntro Python
Intro Python
MoreLab
 

Similar a IPython & Jupyter (20)

Python y la POO, en una clase, UNNe-Corrientes
Python y la POO, en una clase, UNNe-CorrientesPython y la POO, en una clase, UNNe-Corrientes
Python y la POO, en una clase, UNNe-Corrientes
 
Resumen python
Resumen pythonResumen python
Resumen python
 
Generalidades sobre el Desarrollo de Software
Generalidades sobre el Desarrollo de SoftwareGeneralidades sobre el Desarrollo de Software
Generalidades sobre el Desarrollo de Software
 
Eventos intropython
Eventos intropythonEventos intropython
Eventos intropython
 
Screencast aprende python - parte 1
Screencast   aprende python - parte 1Screencast   aprende python - parte 1
Screencast aprende python - parte 1
 
Parallel python sistemas operativos avanzados
Parallel python sistemas operativos avanzadosParallel python sistemas operativos avanzados
Parallel python sistemas operativos avanzados
 
Intro python
Intro pythonIntro python
Intro python
 
Intro python
Intro pythonIntro python
Intro python
 
python-para-todos.pdf
python-para-todos.pdfpython-para-todos.pdf
python-para-todos.pdf
 
Python para todos
Python para todosPython para todos
Python para todos
 
Python para Todos
Python para TodosPython para Todos
Python para Todos
 
python-para-todos.pdf
python-para-todos.pdfpython-para-todos.pdf
python-para-todos.pdf
 
Python para todos
Python para todosPython para todos
Python para todos
 
Libro python para todos
Libro   python para todosLibro   python para todos
Libro python para todos
 
Python para todos
Python para todosPython para todos
Python para todos
 
Python_para_todos.pdf
Python_para_todos.pdfPython_para_todos.pdf
Python_para_todos.pdf
 
Python_para_todos.pdf
Python_para_todos.pdfPython_para_todos.pdf
Python_para_todos.pdf
 
Trabajo de python
Trabajo de pythonTrabajo de python
Trabajo de python
 
Clase 2 - Introducción a la programación con Python I.pptx
Clase 2 - Introducción a la programación con Python I.pptxClase 2 - Introducción a la programación con Python I.pptx
Clase 2 - Introducción a la programación con Python I.pptx
 
Intro Python
Intro PythonIntro Python
Intro Python
 

Más de Big Data Colombia

Deep learning: el renacimiento de las redes neuronales
Deep learning: el renacimiento de las redes neuronalesDeep learning: el renacimiento de las redes neuronales
Deep learning: el renacimiento de las redes neuronales
Big Data Colombia
 

Más de Big Data Colombia (19)

An introduction to deep reinforcement learning
An introduction to deep reinforcement learningAn introduction to deep reinforcement learning
An introduction to deep reinforcement learning
 
Machine learning applied in health
Machine learning applied in healthMachine learning applied in health
Machine learning applied in health
 
Whose Balance Sheet is this? Neural Networks for Banks’ Pattern Recognition
Whose Balance Sheet is this? Neural Networks for Banks’ Pattern RecognitionWhose Balance Sheet is this? Neural Networks for Banks’ Pattern Recognition
Whose Balance Sheet is this? Neural Networks for Banks’ Pattern Recognition
 
Analysis of your own Facebook friends’ data structure through graphs
Analysis of your own Facebook friends’ data structure through graphsAnalysis of your own Facebook friends’ data structure through graphs
Analysis of your own Facebook friends’ data structure through graphs
 
Lo datos cuentan su historia
Lo datos cuentan su historiaLo datos cuentan su historia
Lo datos cuentan su historia
 
Entornos Naturalmente Inteligentes
Entornos Naturalmente InteligentesEntornos Naturalmente Inteligentes
Entornos Naturalmente Inteligentes
 
Modelamiento predictivo y medicina
Modelamiento predictivo y medicinaModelamiento predictivo y medicina
Modelamiento predictivo y medicina
 
Ayudando a los Viajeros usando 500 millones de Reseñas Hoteleras al Mes
Ayudando a los Viajeros usando 500 millones de Reseñas Hoteleras al MesAyudando a los Viajeros usando 500 millones de Reseñas Hoteleras al Mes
Ayudando a los Viajeros usando 500 millones de Reseñas Hoteleras al Mes
 
Deep learning: el renacimiento de las redes neuronales
Deep learning: el renacimiento de las redes neuronalesDeep learning: el renacimiento de las redes neuronales
Deep learning: el renacimiento de las redes neuronales
 
Cloud computing: Trends and Challenges
Cloud computing: Trends and ChallengesCloud computing: Trends and Challenges
Cloud computing: Trends and Challenges
 
Kaggle: Coupon Purchase Prediction
Kaggle: Coupon Purchase PredictionKaggle: Coupon Purchase Prediction
Kaggle: Coupon Purchase Prediction
 
Machine learning y Kaggle
Machine learning y KaggleMachine learning y Kaggle
Machine learning y Kaggle
 
Fraud Analytics
Fraud AnalyticsFraud Analytics
Fraud Analytics
 
Data crunching con Spark
Data crunching con SparkData crunching con Spark
Data crunching con Spark
 
Introducción al Datawarehousing
Introducción al DatawarehousingIntroducción al Datawarehousing
Introducción al Datawarehousing
 
Análisis Explotatorio de Datos: Dejad que la data hable.
Análisis Explotatorio de Datos: Dejad que la data hable.Análisis Explotatorio de Datos: Dejad que la data hable.
Análisis Explotatorio de Datos: Dejad que la data hable.
 
Big Data para mortales
Big Data para mortalesBig Data para mortales
Big Data para mortales
 
Salud, dinero, amor y big data
Salud, dinero, amor y big dataSalud, dinero, amor y big data
Salud, dinero, amor y big data
 
Business Analytics: ¡La culpa es del BIG data!
Business Analytics: ¡La culpa es del BIG data!Business Analytics: ¡La culpa es del BIG data!
Business Analytics: ¡La culpa es del BIG data!
 

Último

INFORME FINAL ESTADISTICA DESCRIPTIVA E INFERENCIAL
INFORME FINAL ESTADISTICA DESCRIPTIVA E INFERENCIALINFORME FINAL ESTADISTICA DESCRIPTIVA E INFERENCIAL
INFORME FINAL ESTADISTICA DESCRIPTIVA E INFERENCIAL
MANUELVILELA7
 
Letra de cambio definición y características.ppt
Letra de cambio definición y características.pptLetra de cambio definición y características.ppt
Letra de cambio definición y características.ppt
ssuserbdc329
 
metodo SOAP utilizado para evaluar el estado de un paciente
metodo SOAP utilizado para evaluar el estado de un pacientemetodo SOAP utilizado para evaluar el estado de un paciente
metodo SOAP utilizado para evaluar el estado de un paciente
MedicinaInternaresid1
 

Último (20)

max-weber-principales-aportes de la sociologia (2).pptx
max-weber-principales-aportes de la sociologia (2).pptxmax-weber-principales-aportes de la sociologia (2).pptx
max-weber-principales-aportes de la sociologia (2).pptx
 
Principales Retos Demográficos de Puerto Rico
Principales Retos Demográficos de Puerto RicoPrincipales Retos Demográficos de Puerto Rico
Principales Retos Demográficos de Puerto Rico
 
Sistema Nacional de Vigilancia en Salud Pública SIVIGILA
Sistema Nacional de Vigilancia en Salud Pública SIVIGILASistema Nacional de Vigilancia en Salud Pública SIVIGILA
Sistema Nacional de Vigilancia en Salud Pública SIVIGILA
 
EPIDEMIO CANCER PULMON resumen nnn.pptx
EPIDEMIO CANCER PULMON  resumen nnn.pptxEPIDEMIO CANCER PULMON  resumen nnn.pptx
EPIDEMIO CANCER PULMON resumen nnn.pptx
 
6.3 Hidrologia Geomorfologia Cuenca.pptx
6.3 Hidrologia Geomorfologia Cuenca.pptx6.3 Hidrologia Geomorfologia Cuenca.pptx
6.3 Hidrologia Geomorfologia Cuenca.pptx
 
INFORME FINAL ESTADISTICA DESCRIPTIVA E INFERENCIAL
INFORME FINAL ESTADISTICA DESCRIPTIVA E INFERENCIALINFORME FINAL ESTADISTICA DESCRIPTIVA E INFERENCIAL
INFORME FINAL ESTADISTICA DESCRIPTIVA E INFERENCIAL
 
ROMA Y EL IMPERIO, CIUDADES ANTIGUA ROMANAS
ROMA Y EL  IMPERIO, CIUDADES  ANTIGUA ROMANASROMA Y EL  IMPERIO, CIUDADES  ANTIGUA ROMANAS
ROMA Y EL IMPERIO, CIUDADES ANTIGUA ROMANAS
 
Adultos Mayores más de 60 años como de la población total (2024).pdf
Adultos Mayores más de 60 años como  de la población total (2024).pdfAdultos Mayores más de 60 años como  de la población total (2024).pdf
Adultos Mayores más de 60 años como de la población total (2024).pdf
 
decreto 2090 de 2003.pdf actividades de alto riesgo en Colombia
decreto 2090 de 2003.pdf actividades de alto riesgo en Colombiadecreto 2090 de 2003.pdf actividades de alto riesgo en Colombia
decreto 2090 de 2003.pdf actividades de alto riesgo en Colombia
 
Los primeros 60 países por IDH en el año (2024).pdf
Los primeros 60 países por IDH en el año (2024).pdfLos primeros 60 países por IDH en el año (2024).pdf
Los primeros 60 países por IDH en el año (2024).pdf
 
Las familias más ricas de África en el año (2024).pdf
Las familias más ricas de África en el año (2024).pdfLas familias más ricas de África en el año (2024).pdf
Las familias más ricas de África en el año (2024).pdf
 
MARCO TEORICO, SEMINARIO DE INVESTIGACION,
MARCO TEORICO, SEMINARIO DE INVESTIGACION,MARCO TEORICO, SEMINARIO DE INVESTIGACION,
MARCO TEORICO, SEMINARIO DE INVESTIGACION,
 
data lista de ingresantes de la universidad de ucayali 2024.pdf
data lista de ingresantes de la universidad de ucayali 2024.pdfdata lista de ingresantes de la universidad de ucayali 2024.pdf
data lista de ingresantes de la universidad de ucayali 2024.pdf
 
Letra de cambio definición y características.ppt
Letra de cambio definición y características.pptLetra de cambio definición y características.ppt
Letra de cambio definición y características.ppt
 
metodo SOAP utilizado para evaluar el estado de un paciente
metodo SOAP utilizado para evaluar el estado de un pacientemetodo SOAP utilizado para evaluar el estado de un paciente
metodo SOAP utilizado para evaluar el estado de un paciente
 
variables-estadisticas. Presentación powerpoint
variables-estadisticas. Presentación powerpointvariables-estadisticas. Presentación powerpoint
variables-estadisticas. Presentación powerpoint
 
PRESENTACIÓN DR. ÓSCAR CABRERA - Visión Económica de El Salvador.pptx
PRESENTACIÓN DR. ÓSCAR CABRERA - Visión Económica de El Salvador.pptxPRESENTACIÓN DR. ÓSCAR CABRERA - Visión Económica de El Salvador.pptx
PRESENTACIÓN DR. ÓSCAR CABRERA - Visión Económica de El Salvador.pptx
 
Alfredo Gabriel Rodriguez Yajure Tarea#1
Alfredo Gabriel Rodriguez Yajure Tarea#1Alfredo Gabriel Rodriguez Yajure Tarea#1
Alfredo Gabriel Rodriguez Yajure Tarea#1
 
aine-2014.pdf/tipos de aines-clasificación
aine-2014.pdf/tipos de aines-clasificaciónaine-2014.pdf/tipos de aines-clasificación
aine-2014.pdf/tipos de aines-clasificación
 
Investigacion cualitativa y cuantitativa....pdf
Investigacion cualitativa y cuantitativa....pdfInvestigacion cualitativa y cuantitativa....pdf
Investigacion cualitativa y cuantitativa....pdf
 

IPython & Jupyter

  • 1. Fernando Pérez (@fperez_org & fperez@lbl.gov) LBL & UC Berkeley Computación interactiva en “Data Science” IPython & Jupyter
  • 2. –Hamming'62 “The purpose of computing is insight, not numbers” “El objetivo de la computación es la comprensión, no los números”
  • 3. 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
  • 4. 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
  • 5. IPython: CU Boulder, 2001 O, cómo evitar trabajar en una tesis doctoral de física de partículas
  • 6. 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
  • 7. El crédito es de todo el equipo Y más de 500 otros contribuyen en la comunidad
  • 9. 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)
  • 10. 2011: The IPython Notebook ❖ Cliente para la web ❖ Texto & matemática ❖ Código ❖ Resultados
  • 11. De IPython al Proyecto Jupyter
  • 12. Una arquitectura simple y genérica
  • 13. Más allá de Python: kernels en muchos lenguajes ❖ IPython “Oficial", nuestro. ❖ IJulia ❖ IRKernel ❖ IHaskell ❖ IFSharp ❖ Ruby ❖ IScala ❖ IErlang ❖ Muchos más! > 50
  • 14. “¿Porqué se llama IPython, si sirve para Julia, R, Haskell, Ruby, … ?”
  • 15. 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
  • 16. Ideas fundamentales: Internet ❖ HTTP y HTML: ❖ Un protocolo para transferir contenido. ❖ Un formato para representarlo.
  • 17. Ideas fundamentales: Jupyter Protocolo REPL Formato de documento https://github.com/CamDavidsonPilon/Probabilistic-Programming-and-Bayesian-Methods-for-Hackers SUB SUB DEAL Client SUB DEALDEALDEAL ROUTPUB ROUTROUT Kernel ØMQ + JSON
  • 18. El protocolo Jupyter es agnóstico al lenguaje u alj i
  • 21. nbviewer: compartir notebooks sin esfuerzo ❖ Leer notebooks sin instalar nada ❖ Comparta una URL ❖ nbviewer.jupyter.org
  • 22. Blogging científico Jake van der Plas @ UW http://blogs.scientificamerican.com/ sa-visual/2014/09/16/visualizing-4- dimensional-asteroids
  • 23. Libros ejecutables ❖ Libro Springer ❖ Capítulos: Notebooks IPython ❖ Presentados en su blog ❖ Disponible en Github Python for Signal Processing, por José Unpingco
  • 24. Cursos Universitarios Jupyter en Educación (lista de correo): https://groups.google.com/forum/#!forum/jupyter-education
  • 25. 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
  • 26. Libros sobre IPython IPython Interactive Computing and Visualization Cookbook Learning IPython for Interactive Computing and Data Visualization Cyrille Rossant cyrille.rossant.net
  • 27. Cambiando la cultura científica http://www.nature.com/news/interactive-notebooks-sharing-the-code-1.16261
  • 28. Papers interactivos: ¿el futuro? http://www.nature.com/news/ipython-interactive-demo-7.21492?article=1.16261
  • 29. ¡Mucho más! La galería de IPython https://github.com/ipython/ipython/wiki/A-gallery-of-interesting-IPython-Notebooks
  • 30. Estas fundaciones se han convertido en infraestructura
  • 32. bqplot: gráficos interactivos de Bloomberg http://github.com/bloomberg/bqplot
  • 33. Thebe, de O’Reilly: kernels como servicio
  • 34. Más de 500,000 notebooks en GitHub
  • 35. Desde Mayo 6 del 2015
  • 36. Una colaboración en la Unión Europea