SlideShare una empresa de Scribd logo
1 de 39
Descargar para leer sin conexión
INTRODUCCIÓN A
JUPYTER
(ANTES CONOCIDO COMO IPYTHONNOTEBOOK)
POR JUAN IGNACIO RODRÍGUEZ DE LEÓN (@JILEON EN TWITTER, @EURIBATES EN
TELEGRAM)
Fuentes en https://github.com/euribates/Jupyter-Intro
SOBRE LA INSTALACIÓN
Normalmente, se usa Jupyter junto a varias librerías:
Numpy, Pandas, Scipy, Matplotlib, etc...
Si ya usas Python, puedes usar pip para instalar
Jupyter. El resto de librerías puede ser más
complicado
Si eres nuevo, te recomiendo usar Anaconda:
Instala Jupyter y un montón de librerías ya
compiladas, super sencillo y válido para
Mac/Windows/Linux
keywords: Install Anaconda
EVOLUCIÓN HISTÓRICA
iPython
iPython notebook
Jupyter notebook (Language agnostic)
ARQUITECTURA DE IJUPYTER
MUUUY SIMPLIFICADA
Web
Notebook
iPython
Terminal
iPython Kernel 
ZeroMQ
JUPYTER SE DESVINCULA DE IPYTHON
Se de ne claramente la interfaz entre el notebook y
el nucleo
Ahora podemos reemplazar el nucleo de iPython por
otro, siempre que cumpla la misma interfaz
iPython sigue siendo el kernel por defecto, pero
pueden añadirse otros
JUPYTER ≊ JULIA + PYTHON + R
Y MÁS...
... muchos más: , , , , ...
Lista completa en
Keywords: Jupyter kernel [Tu lenguaje
favorito aquí]
Ruby
Haskell
Node.js
Go Scala Octave Bash Rust
https://github.com/jupyter/jupyter/wiki/Jupyter-
kernels
¿QUÉ ES IPYTHON?
IPYTHON ES PYTHON CON SUPERPODERES
UN INTERPRETE DE PYTHON AMPLIADO
Puede hacer todo lo que un interprete normal, y más:
Comandos "mágicos"
Coloreado de sintaxis
Autocompletado de código
Introspección
Mejores ayudas, documentación, debugging, etc...
¿CÓMO LO HACE?
while True:
orden = espera_orden()
if orden.es_especial:
procesa_orden_interna(orden)
else:
salida = ejecuta_en_python(orden)
print(salida)
EJEMPLO DE LAS CAPACIDADES DE IPYTHON ⚙
Desde la consola, escribimos: ipython
COMANDOS MÁGICOS
Son ordenes propias de iPython
Siempre empiezan por % o %%
% para ordenes que afecta una sola línea
%% para ordenes que afectan a toda una celda
(ALGUNOS) COMANDOS MÁGICOS ⚙
%who y %whos muestran variables de nidas en el
espacio actual
%lsmagic es una orden mágica que lista todas las
ordenes mágicas disponibles
%timeit y %%timeit realizan un informe del
tiempo de ejecución de una línea o un fragmento de
código
Keywords: iPython magic commands
AYUDAS Y COMPLETADO DE SINTAXIS ⚙
Pulsando TAB
Ojo, realiza introspección de lo que tenga en
memoria.
Lo que no está cargado, lo desconoce
Podemos pedir ayuda de cualquier comando, mágico
o de python, con ?, antes o despues
¿QUÉ ES UN NOTEBOOK?
UNA DEFINICIÓN
COMO CUALQUIER OTRA
Una aplicación web, que permite ejecutar código a la
vez que representar texto con formato, incluyendo
imágenes, diagramas y ecuaciones matemáticas de
forma integrada
¿PARA QUÉ SIRVE?
Consola Python en web
Realización de análisis y estudios
Informes en vivo
Panel de mando
Publicaciones interactivas
CARACTERÍSTICAS DE LOS NOTEBOOKS
Fáciles de compartir
Autocontenidos
Repetibles
Veri cables
Modi cables
ARRANQUEMOS JUPYTER ⚙
Desde la consola, ejecutar jupyter notebook
CREAR UN NUEVO NOTEBOOK ⚙
A la Derecha, elegimos New → Python 3
ALGUNOS EJERCICIOS ⚙
Cambiar el título del notebook
Ver que el cambio del nombre se re eja en el
dashboard
Añadir un chero al directorio desde el que
arrancamos Jupyter, por ejemplo, en línea de
comando: touch notas.md
Ver que el dashboard re eja el cambio, sin necesidad
de refrescar
ANATOMIA DE UN NOTEBOOK
UN NOTEBOOK SE DIVIDE EN CELDAS
NOTEBOOK = LISTA DE CELDAS + METADATOS
HAY VARIOS TIPOS DE CELDAS
Celda de texto
Celda de código
Celda de resultados
CELDA DE TEXTO
Aceptan markdown, y Html, con lo que podemos
darle formato a los textos muy facilmente
Podemos incluir fórmulas matemáticas usando el
formato de
Keywords: Latex Markdown MathJax Jupyter
LaTex
EJEMPLO DE CELDA DE TEXTO ⚙
Insertar texto en Markdown: negritas, itálicas, una
lista...
Insertar texto en Html: un párrafo, una imagen...
Insertar una formula matemática
CELDA DE CÓDIGO ⚙
Imprimir los pares hasta el 20
Cargar y mostrar una imagen
Crear un thumbnail de la imagen anterior y mostrarlo
Recortar una parte de la imagen y mostrarla
Keywords: Pillow Python Image Library
CELDA DE RESULTADOS
Lo que hemos visto en los resultados anterior
Jupyter reconoce tipos de datos diferentes y los
puede representar
Incluir HTML es superpotente
INCUIR UN VIDEO DE YOUTUBE ⚙
Usa el comando mágico %%HTML
Busca en compartir vídeo en YouTube, luego embeb
Guardianes de la galaxia Vol 2 va a ser la caña
COSAS QUE NO TENEMOS TIEMPO DE VER
PERO QUE RESULTAN INTERESANTES
TODAS LAS FANTÁSTICAS LIBRERÍAS CIENTÍFICAS Y
MATEMÁTICAS: NUMPY, PANDAS, MATPLOTLIB, SCIPY...
... pero no te pierdas el siguiente taller, te gustará
COMPARTIR Y CONVERTIR A OTROS FORMATOS
El formato ipynb es el formato estandar para
compartir. Es JSON sencillo. Su estructura es
metadatos más lista de celdas. Puedes enviarlo por
correo, hacer control de versiones, ponerlo en la
web...
Convertir a Html estático
Convertir a PDF vía Latex
Convertir a Restructured Text
Convertir a Python / Markdown
Keywords: nbconvert
USO DE OTROS KERNELS (LENGUAJES)
Hay para elegir
PROCESAMIENTO EN PARALELO
Podemos controlar ejecución en parelelo desde un
notebook sobre multiples maquindas. Muy interesante
para todo lo que sea BigData
Keywords: pyparellel
ESCRIBIR NUESTROS PROPIOS KERNELS
HAY DOS OPCIONES
Implementar el protocolo de comunicaciones con
ZeroMQ desde el lenguaje que queremos añadir
Más complicado, pero es tu lenguaje favorito. Tu
comunidad puede apoyarte.
Usar un wrapper en python
Las interfaces de comunicaciones ya están
creadas, por lo que es más simple.Pero puede que
tu lenguaje no se deje wrappear facilmente
COMPARTIR NOTEBOOKS
Existe soluciones para compartir el misno notebooks
entre diferentes personas, cada uno ejecuta su propia
version, mientras que el original se mantiene intacto
Keywords: JupyterHub
SEGURIDAD
No hemos visto nada, pero existe
¡GRACIAS A TODOS POR
ASISTIR!
¿PREGUNTAS?

Más contenido relacionado

La actualidad más candente

8. Técnicas y herramientas de auditoria de sistemas
8. Técnicas y herramientas de auditoria de sistemas8. Técnicas y herramientas de auditoria de sistemas
8. Técnicas y herramientas de auditoria de sistemasHector Chajón
 
Cuadro comparativo de los lenguajes de desarrollo 04
Cuadro comparativo de los lenguajes de desarrollo 04Cuadro comparativo de los lenguajes de desarrollo 04
Cuadro comparativo de los lenguajes de desarrollo 04marioorozco2g
 
Pasos necesarios para crear pseudocódigo y un algoritmo
Pasos necesarios para crear pseudocódigo y un algoritmoPasos necesarios para crear pseudocódigo y un algoritmo
Pasos necesarios para crear pseudocódigo y un algoritmojairofr97
 
Trazabilidad En Proyectos De Software
Trazabilidad En Proyectos De SoftwareTrazabilidad En Proyectos De Software
Trazabilidad En Proyectos De SoftwareBarCamp Quito
 
Modelado UML de sistema punto venta
Modelado UML de sistema punto ventaModelado UML de sistema punto venta
Modelado UML de sistema punto ventaRafael Diaz
 
Modelos de procesos de Software
Modelos de procesos de SoftwareModelos de procesos de Software
Modelos de procesos de SoftwareRaúl Galván
 
Qué es la ingeniería web
Qué es la ingeniería webQué es la ingeniería web
Qué es la ingeniería webVictor Barraza
 
Fases de desarrollo de un programa...
Fases de desarrollo de un programa... Fases de desarrollo de un programa...
Fases de desarrollo de un programa... grachika
 

La actualidad más candente (10)

8. Técnicas y herramientas de auditoria de sistemas
8. Técnicas y herramientas de auditoria de sistemas8. Técnicas y herramientas de auditoria de sistemas
8. Técnicas y herramientas de auditoria de sistemas
 
Itil presentacion
Itil presentacionItil presentacion
Itil presentacion
 
Cuadro comparativo de los lenguajes de desarrollo 04
Cuadro comparativo de los lenguajes de desarrollo 04Cuadro comparativo de los lenguajes de desarrollo 04
Cuadro comparativo de los lenguajes de desarrollo 04
 
Pasos necesarios para crear pseudocódigo y un algoritmo
Pasos necesarios para crear pseudocódigo y un algoritmoPasos necesarios para crear pseudocódigo y un algoritmo
Pasos necesarios para crear pseudocódigo y un algoritmo
 
Trazabilidad En Proyectos De Software
Trazabilidad En Proyectos De SoftwareTrazabilidad En Proyectos De Software
Trazabilidad En Proyectos De Software
 
Modelado UML de sistema punto venta
Modelado UML de sistema punto ventaModelado UML de sistema punto venta
Modelado UML de sistema punto venta
 
Modelos de procesos de Software
Modelos de procesos de SoftwareModelos de procesos de Software
Modelos de procesos de Software
 
Computo en paralelo con OpenMP y OpenMPI
Computo en paralelo con OpenMP y OpenMPIComputo en paralelo con OpenMP y OpenMPI
Computo en paralelo con OpenMP y OpenMPI
 
Qué es la ingeniería web
Qué es la ingeniería webQué es la ingeniería web
Qué es la ingeniería web
 
Fases de desarrollo de un programa...
Fases de desarrollo de un programa... Fases de desarrollo de un programa...
Fases de desarrollo de un programa...
 

Destacado

1 intelligent business_elementary_coursebook
1 intelligent business_elementary_coursebook1 intelligent business_elementary_coursebook
1 intelligent business_elementary_coursebookSilvia
 
Introducción a DSL (Lenguajes Específicos de Dominios) con Python
Introducción a DSL (Lenguajes Específicos de Dominios) con PythonIntroducción a DSL (Lenguajes Específicos de Dominios) con Python
Introducción a DSL (Lenguajes Específicos de Dominios) con PythonJuan Rodríguez
 
Rostros da comedia: anos 20
Rostros da comedia: anos 20Rostros da comedia: anos 20
Rostros da comedia: anos 20filmotecaforum
 
Karneval 2017
Karneval 2017Karneval 2017
Karneval 2017ZSLanzhot
 
Austin Economic Forecast 2017 Presentation @ Westin Domain w/Capstone Capital...
Austin Economic Forecast 2017 Presentation @ Westin Domain w/Capstone Capital...Austin Economic Forecast 2017 Presentation @ Westin Domain w/Capstone Capital...
Austin Economic Forecast 2017 Presentation @ Westin Domain w/Capstone Capital...Kenn Renner
 
Graella arxius
Graella arxiusGraella arxius
Graella arxiusPaulaBrug
 
Matemáticas Discretas - Unidad 1 Sistemas numericos
Matemáticas Discretas - Unidad 1 Sistemas numericosMatemáticas Discretas - Unidad 1 Sistemas numericos
Matemáticas Discretas - Unidad 1 Sistemas numericosJosé Antonio Sandoval Acosta
 
контролінг інвестиційних проектів
контролінг інвестиційних проектівконтролінг інвестиційних проектів
контролінг інвестиційних проектівav47840
 
Windows環境でのMySQL
Windows環境でのMySQLWindows環境でのMySQL
Windows環境でのMySQLyoyamasaki
 
Go 1.8 'new' networking features
Go 1.8 'new' networking featuresGo 1.8 'new' networking features
Go 1.8 'new' networking featuresstrikr .
 

Destacado (20)

1 intelligent business_elementary_coursebook
1 intelligent business_elementary_coursebook1 intelligent business_elementary_coursebook
1 intelligent business_elementary_coursebook
 
Slideshare el lam
Slideshare el lamSlideshare el lam
Slideshare el lam
 
Introducción a DSL (Lenguajes Específicos de Dominios) con Python
Introducción a DSL (Lenguajes Específicos de Dominios) con PythonIntroducción a DSL (Lenguajes Específicos de Dominios) con Python
Introducción a DSL (Lenguajes Específicos de Dominios) con Python
 
Rostros da comedia: anos 20
Rostros da comedia: anos 20Rostros da comedia: anos 20
Rostros da comedia: anos 20
 
1 informe no2_cnc_torres
1 informe no2_cnc_torres1 informe no2_cnc_torres
1 informe no2_cnc_torres
 
Karneval 2017
Karneval 2017Karneval 2017
Karneval 2017
 
Contabilidad fiorella foliaco
Contabilidad fiorella foliacoContabilidad fiorella foliaco
Contabilidad fiorella foliaco
 
Probabilidad
ProbabilidadProbabilidad
Probabilidad
 
Basura espacial
Basura espacialBasura espacial
Basura espacial
 
Seminario 2
Seminario 2 Seminario 2
Seminario 2
 
Austin Economic Forecast 2017 Presentation @ Westin Domain w/Capstone Capital...
Austin Economic Forecast 2017 Presentation @ Westin Domain w/Capstone Capital...Austin Economic Forecast 2017 Presentation @ Westin Domain w/Capstone Capital...
Austin Economic Forecast 2017 Presentation @ Westin Domain w/Capstone Capital...
 
Referencia 1
Referencia 1Referencia 1
Referencia 1
 
F. W. Murnau
F. W. MurnauF. W. Murnau
F. W. Murnau
 
Graella arxius
Graella arxiusGraella arxius
Graella arxius
 
Matemáticas Discretas - Unidad 1 Sistemas numericos
Matemáticas Discretas - Unidad 1 Sistemas numericosMatemáticas Discretas - Unidad 1 Sistemas numericos
Matemáticas Discretas - Unidad 1 Sistemas numericos
 
контролінг інвестиційних проектів
контролінг інвестиційних проектівконтролінг інвестиційних проектів
контролінг інвестиційних проектів
 
El arte de hacer un pitch
El arte de hacer un pitchEl arte de hacer un pitch
El arte de hacer un pitch
 
Windows環境でのMySQL
Windows環境でのMySQLWindows環境でのMySQL
Windows環境でのMySQL
 
Ramorum2016 final
Ramorum2016 finalRamorum2016 final
Ramorum2016 final
 
Go 1.8 'new' networking features
Go 1.8 'new' networking featuresGo 1.8 'new' networking features
Go 1.8 'new' networking features
 

Similar a Introducción a jupyter (antes i python notebook)

Jupyter e IPython para manipulación de datos
Jupyter e IPython para manipulación de datosJupyter e IPython para manipulación de datos
Jupyter e IPython para manipulación de datosSoftware Guru
 
python-para-todos.pdf
python-para-todos.pdfpython-para-todos.pdf
python-para-todos.pdfJaviMartin21
 
Python para todos
Python para todosPython para todos
Python para todosErik Gur
 
python-para-todos.pdf
python-para-todos.pdfpython-para-todos.pdf
python-para-todos.pdfRafalJMalave
 
Python para todos
Python para todosPython para todos
Python para todossebas145713
 
Python_para_todos.pdf
Python_para_todos.pdfPython_para_todos.pdf
Python_para_todos.pdfssuser626fe4
 
Clase 1 Curso Introducción a Python 2012
Clase 1 Curso Introducción a Python 2012Clase 1 Curso Introducción a Python 2012
Clase 1 Curso Introducción a Python 2012Nahuel Defossé
 
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-Corrientesalexis ibarra
 
Spain AI 2022 - ¡Oh, un modelo de ML, vamos a desplegarlo! - Machine Learning...
Spain AI 2022 - ¡Oh, un modelo de ML, vamos a desplegarlo! - Machine Learning...Spain AI 2022 - ¡Oh, un modelo de ML, vamos a desplegarlo! - Machine Learning...
Spain AI 2022 - ¡Oh, un modelo de ML, vamos a desplegarlo! - Machine Learning...Ricardo Guerrero Gómez-Olmedo
 
Parallel python sistemas operativos avanzados
Parallel python sistemas operativos avanzadosParallel python sistemas operativos avanzados
Parallel python sistemas operativos avanzadosDaniel Muccela
 
Intro Python
Intro PythonIntro Python
Intro PythonMoreLab
 
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.pptxjgs07
 
Pycon es 17 noviembre 2014
Pycon es 17 noviembre 2014Pycon es 17 noviembre 2014
Pycon es 17 noviembre 2014Sergio Soto
 
Python - Programando fácil, rápido y gratis
Python - Programando fácil, rápido y gratisPython - Programando fácil, rápido y gratis
Python - Programando fácil, rápido y gratisJuan Percy Rojas Cruz
 
Python_Module_01_Courtesy.pdf
Python_Module_01_Courtesy.pdfPython_Module_01_Courtesy.pdf
Python_Module_01_Courtesy.pdfCeth1
 

Similar a Introducción a jupyter (antes i python notebook) (20)

Python power 1
Python power 1Python power 1
Python power 1
 
Jupyter e IPython para manipulación de datos
Jupyter e IPython para manipulación de datosJupyter e IPython para manipulación de datos
Jupyter e IPython para manipulación de datos
 
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
 
Clase 1 Curso Introducción a Python 2012
Clase 1 Curso Introducción a Python 2012Clase 1 Curso Introducción a Python 2012
Clase 1 Curso Introducción a Python 2012
 
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
 
Spain AI 2022 - ¡Oh, un modelo de ML, vamos a desplegarlo! - Machine Learning...
Spain AI 2022 - ¡Oh, un modelo de ML, vamos a desplegarlo! - Machine Learning...Spain AI 2022 - ¡Oh, un modelo de ML, vamos a desplegarlo! - Machine Learning...
Spain AI 2022 - ¡Oh, un modelo de ML, vamos a desplegarlo! - Machine Learning...
 
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
 
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
 
Pycon es 17 noviembre 2014
Pycon es 17 noviembre 2014Pycon es 17 noviembre 2014
Pycon es 17 noviembre 2014
 
Python - Programando fácil, rápido y gratis
Python - Programando fácil, rápido y gratisPython - Programando fácil, rápido y gratis
Python - Programando fácil, rápido y gratis
 
Python_Module_01_Courtesy.pdf
Python_Module_01_Courtesy.pdfPython_Module_01_Courtesy.pdf
Python_Module_01_Courtesy.pdf
 

Más de Juan Rodríguez

Estados imposibles y como evitarlos
Estados imposibles y como evitarlosEstados imposibles y como evitarlos
Estados imposibles y como evitarlosJuan Rodríguez
 
Introduction to BDD (Behavior-Driven Development)
Introduction to BDD (Behavior-Driven Development)Introduction to BDD (Behavior-Driven Development)
Introduction to BDD (Behavior-Driven Development)Juan Rodríguez
 
Vue.js: El framework javascript para muggles
Vue.js: El framework javascript para mugglesVue.js: El framework javascript para muggles
Vue.js: El framework javascript para mugglesJuan Rodríguez
 
Acceder a C desde Python (O viceversa)
Acceder a C desde Python (O viceversa)Acceder a C desde Python (O viceversa)
Acceder a C desde Python (O viceversa)Juan Rodríguez
 
Viaje al centro de la locura con Javascript
Viaje al centro de la locura con JavascriptViaje al centro de la locura con Javascript
Viaje al centro de la locura con JavascriptJuan Rodríguez
 
Una imagen vale más que mil mentiras
Una imagen vale más que mil mentirasUna imagen vale más que mil mentiras
Una imagen vale más que mil mentirasJuan Rodríguez
 
Presentación estetoscopio
Presentación estetoscopioPresentación estetoscopio
Presentación estetoscopioJuan Rodríguez
 
Charla introducción a RaspberryPI
Charla introducción a RaspberryPICharla introducción a RaspberryPI
Charla introducción a RaspberryPIJuan Rodríguez
 
Guia (breve) de supervivencia a python 3
Guia (breve) de supervivencia a python 3Guia (breve) de supervivencia a python 3
Guia (breve) de supervivencia a python 3Juan Rodríguez
 
¡A todo Kanban! ~ Introducción a kanban
¡A todo Kanban! ~ Introducción a kanban¡A todo Kanban! ~ Introducción a kanban
¡A todo Kanban! ~ Introducción a kanbanJuan Rodríguez
 
02 python Programación orientada a objetos y funcional
02 python Programación orientada a objetos y funcional02 python Programación orientada a objetos y funcional
02 python Programación orientada a objetos y funcionalJuan Rodríguez
 
00 introducción a Python
00 introducción a Python00 introducción a Python
00 introducción a PythonJuan Rodríguez
 
Taller de introducción al desarrollo web con Django
Taller de introducción al desarrollo web con DjangoTaller de introducción al desarrollo web con Django
Taller de introducción al desarrollo web con DjangoJuan Rodríguez
 
Presentacion Google Mini Adeje 16 Oct 2008
Presentacion Google Mini Adeje 16 Oct 2008Presentacion Google Mini Adeje 16 Oct 2008
Presentacion Google Mini Adeje 16 Oct 2008Juan Rodríguez
 
Algunos recursos para desarrollo Web
Algunos recursos para desarrollo WebAlgunos recursos para desarrollo Web
Algunos recursos para desarrollo WebJuan Rodríguez
 
Hojas de estilo CSS (Cascade Style Sheets)
Hojas de estilo CSS (Cascade Style Sheets)Hojas de estilo CSS (Cascade Style Sheets)
Hojas de estilo CSS (Cascade Style Sheets)Juan Rodríguez
 

Más de Juan Rodríguez (19)

Estados imposibles y como evitarlos
Estados imposibles y como evitarlosEstados imposibles y como evitarlos
Estados imposibles y como evitarlos
 
Introduction to BDD (Behavior-Driven Development)
Introduction to BDD (Behavior-Driven Development)Introduction to BDD (Behavior-Driven Development)
Introduction to BDD (Behavior-Driven Development)
 
Vue.js: El framework javascript para muggles
Vue.js: El framework javascript para mugglesVue.js: El framework javascript para muggles
Vue.js: El framework javascript para muggles
 
Acceder a C desde Python (O viceversa)
Acceder a C desde Python (O viceversa)Acceder a C desde Python (O viceversa)
Acceder a C desde Python (O viceversa)
 
Viaje al centro de la locura con Javascript
Viaje al centro de la locura con JavascriptViaje al centro de la locura con Javascript
Viaje al centro de la locura con Javascript
 
Una imagen vale más que mil mentiras
Una imagen vale más que mil mentirasUna imagen vale más que mil mentiras
Una imagen vale más que mil mentiras
 
Presentación estetoscopio
Presentación estetoscopioPresentación estetoscopio
Presentación estetoscopio
 
Charla introducción a RaspberryPI
Charla introducción a RaspberryPICharla introducción a RaspberryPI
Charla introducción a RaspberryPI
 
Guia (breve) de supervivencia a python 3
Guia (breve) de supervivencia a python 3Guia (breve) de supervivencia a python 3
Guia (breve) de supervivencia a python 3
 
¡A todo Kanban! ~ Introducción a kanban
¡A todo Kanban! ~ Introducción a kanban¡A todo Kanban! ~ Introducción a kanban
¡A todo Kanban! ~ Introducción a kanban
 
02 python Programación orientada a objetos y funcional
02 python Programación orientada a objetos y funcional02 python Programación orientada a objetos y funcional
02 python Programación orientada a objetos y funcional
 
01 el lenguaje Python
01 el lenguaje Python01 el lenguaje Python
01 el lenguaje Python
 
00 introducción a Python
00 introducción a Python00 introducción a Python
00 introducción a Python
 
Taller de introducción al desarrollo web con Django
Taller de introducción al desarrollo web con DjangoTaller de introducción al desarrollo web con Django
Taller de introducción al desarrollo web con Django
 
Presentación appy/pod
Presentación appy/podPresentación appy/pod
Presentación appy/pod
 
Presentacion Google Mini Adeje 16 Oct 2008
Presentacion Google Mini Adeje 16 Oct 2008Presentacion Google Mini Adeje 16 Oct 2008
Presentacion Google Mini Adeje 16 Oct 2008
 
Algunos recursos para desarrollo Web
Algunos recursos para desarrollo WebAlgunos recursos para desarrollo Web
Algunos recursos para desarrollo Web
 
Hojas de estilo CSS (Cascade Style Sheets)
Hojas de estilo CSS (Cascade Style Sheets)Hojas de estilo CSS (Cascade Style Sheets)
Hojas de estilo CSS (Cascade Style Sheets)
 
Extranet Parlamento
Extranet ParlamentoExtranet Parlamento
Extranet Parlamento
 

Último

Teoría de usos y gratificaciones 2024.pptx
Teoría de usos y gratificaciones 2024.pptxTeoría de usos y gratificaciones 2024.pptx
Teoría de usos y gratificaciones 2024.pptxlm24028
 
registro cardiotocografico interpretacion y valoracion
registro cardiotocografico interpretacion y valoracionregistro cardiotocografico interpretacion y valoracion
registro cardiotocografico interpretacion y valoracionMarcoAntonioJimenez14
 
RX DE TORAX normal jornadas .............
RX DE TORAX normal jornadas .............RX DE TORAX normal jornadas .............
RX DE TORAX normal jornadas .............claudiasilvera25
 
problemas_oscilaciones_amortiguadas.pdf aplicadas a la mecanica
problemas_oscilaciones_amortiguadas.pdf aplicadas a la mecanicaproblemas_oscilaciones_amortiguadas.pdf aplicadas a la mecanica
problemas_oscilaciones_amortiguadas.pdf aplicadas a la mecanicaArturoDavilaObando
 
enfermedades infecciosas diarrea viral bovina presentacion umss
enfermedades infecciosas diarrea viral bovina presentacion umssenfermedades infecciosas diarrea viral bovina presentacion umss
enfermedades infecciosas diarrea viral bovina presentacion umssCinthyaMercado3
 
PARES CRANEALES. ORIGEN REAL Y APARENTE, TRAYECTO E INERVACIÓN. CLASIFICACIÓN...
PARES CRANEALES. ORIGEN REAL Y APARENTE, TRAYECTO E INERVACIÓN. CLASIFICACIÓN...PARES CRANEALES. ORIGEN REAL Y APARENTE, TRAYECTO E INERVACIÓN. CLASIFICACIÓN...
PARES CRANEALES. ORIGEN REAL Y APARENTE, TRAYECTO E INERVACIÓN. CLASIFICACIÓN...ocanajuanpablo0
 
Patologias del quiasma optico .pptxxxxxx
Patologias del quiasma optico .pptxxxxxxPatologias del quiasma optico .pptxxxxxx
Patologias del quiasma optico .pptxxxxxxFranciscaValentinaGa1
 
López, L. - Destierro y memoria. Trayectorias de familias judías piemontesas ...
López, L. - Destierro y memoria. Trayectorias de familias judías piemontesas ...López, L. - Destierro y memoria. Trayectorias de familias judías piemontesas ...
López, L. - Destierro y memoria. Trayectorias de familias judías piemontesas ...frank0071
 
Límites derivadas e integrales y análisis matemático.pptx
Límites derivadas e integrales y análisis matemático.pptxLímites derivadas e integrales y análisis matemático.pptx
Límites derivadas e integrales y análisis matemático.pptxErichManriqueCastill
 
tecnica de necropsia en bovinos rum.pptx
tecnica de necropsia en bovinos rum.pptxtecnica de necropsia en bovinos rum.pptx
tecnica de necropsia en bovinos rum.pptxJESUSDANIELYONGOLIVE
 
DESPOTISMO ILUSTRADOO - copia - copia - copia - copia.pdf
DESPOTISMO ILUSTRADOO - copia - copia - copia - copia.pdfDESPOTISMO ILUSTRADOO - copia - copia - copia - copia.pdf
DESPOTISMO ILUSTRADOO - copia - copia - copia - copia.pdfssuser6a4120
 
5.2 DERIVADAS PARCIALES (64RG45G45G45G).pptx
5.2 DERIVADAS PARCIALES (64RG45G45G45G).pptx5.2 DERIVADAS PARCIALES (64RG45G45G45G).pptx
5.2 DERIVADAS PARCIALES (64RG45G45G45G).pptxllacza2004
 
Campo_magnético_y_fuerzas_magnéticas.pdf
Campo_magnético_y_fuerzas_magnéticas.pdfCampo_magnético_y_fuerzas_magnéticas.pdf
Campo_magnético_y_fuerzas_magnéticas.pdfArturoDavilaObando
 
EXAMEN ANDROLOGICO O CAPACIDAD REPRODUCTIVA EN EQUINOS.pptx
EXAMEN ANDROLOGICO O CAPACIDAD REPRODUCTIVA  EN EQUINOS.pptxEXAMEN ANDROLOGICO O CAPACIDAD REPRODUCTIVA  EN EQUINOS.pptx
EXAMEN ANDROLOGICO O CAPACIDAD REPRODUCTIVA EN EQUINOS.pptxJhonFonseca16
 
HISTORIA NATURAL DE LA ENFEREMEDAD: SARAMPION
HISTORIA NATURAL DE LA ENFEREMEDAD: SARAMPIONHISTORIA NATURAL DE LA ENFEREMEDAD: SARAMPION
HISTORIA NATURAL DE LA ENFEREMEDAD: SARAMPIONAleMena14
 
Woods, Thomas E. - Cómo la Iglesia construyó la Civilización Occidental [ocr]...
Woods, Thomas E. - Cómo la Iglesia construyó la Civilización Occidental [ocr]...Woods, Thomas E. - Cómo la Iglesia construyó la Civilización Occidental [ocr]...
Woods, Thomas E. - Cómo la Iglesia construyó la Civilización Occidental [ocr]...frank0071
 
Diapositiva sobre el conflicto de Israel - Palestina para nivel secundaria
Diapositiva sobre el conflicto de Israel - Palestina para nivel secundariaDiapositiva sobre el conflicto de Israel - Palestina para nivel secundaria
Diapositiva sobre el conflicto de Israel - Palestina para nivel secundariaAgustin535878
 
Codigo rojo manejo y tratamient 2022.pptx
Codigo rojo manejo y tratamient 2022.pptxCodigo rojo manejo y tratamient 2022.pptx
Codigo rojo manejo y tratamient 2022.pptxSergioSanto4
 
Harvey, David. - Paris capital de la modernidad [2008].pdf
Harvey, David. - Paris capital de la modernidad [2008].pdfHarvey, David. - Paris capital de la modernidad [2008].pdf
Harvey, David. - Paris capital de la modernidad [2008].pdffrank0071
 
Piccato, P. - Historia mínima de la violencia en México [2022].pdf
Piccato, P. - Historia mínima de la violencia en México [2022].pdfPiccato, P. - Historia mínima de la violencia en México [2022].pdf
Piccato, P. - Historia mínima de la violencia en México [2022].pdffrank0071
 

Último (20)

Teoría de usos y gratificaciones 2024.pptx
Teoría de usos y gratificaciones 2024.pptxTeoría de usos y gratificaciones 2024.pptx
Teoría de usos y gratificaciones 2024.pptx
 
registro cardiotocografico interpretacion y valoracion
registro cardiotocografico interpretacion y valoracionregistro cardiotocografico interpretacion y valoracion
registro cardiotocografico interpretacion y valoracion
 
RX DE TORAX normal jornadas .............
RX DE TORAX normal jornadas .............RX DE TORAX normal jornadas .............
RX DE TORAX normal jornadas .............
 
problemas_oscilaciones_amortiguadas.pdf aplicadas a la mecanica
problemas_oscilaciones_amortiguadas.pdf aplicadas a la mecanicaproblemas_oscilaciones_amortiguadas.pdf aplicadas a la mecanica
problemas_oscilaciones_amortiguadas.pdf aplicadas a la mecanica
 
enfermedades infecciosas diarrea viral bovina presentacion umss
enfermedades infecciosas diarrea viral bovina presentacion umssenfermedades infecciosas diarrea viral bovina presentacion umss
enfermedades infecciosas diarrea viral bovina presentacion umss
 
PARES CRANEALES. ORIGEN REAL Y APARENTE, TRAYECTO E INERVACIÓN. CLASIFICACIÓN...
PARES CRANEALES. ORIGEN REAL Y APARENTE, TRAYECTO E INERVACIÓN. CLASIFICACIÓN...PARES CRANEALES. ORIGEN REAL Y APARENTE, TRAYECTO E INERVACIÓN. CLASIFICACIÓN...
PARES CRANEALES. ORIGEN REAL Y APARENTE, TRAYECTO E INERVACIÓN. CLASIFICACIÓN...
 
Patologias del quiasma optico .pptxxxxxx
Patologias del quiasma optico .pptxxxxxxPatologias del quiasma optico .pptxxxxxx
Patologias del quiasma optico .pptxxxxxx
 
López, L. - Destierro y memoria. Trayectorias de familias judías piemontesas ...
López, L. - Destierro y memoria. Trayectorias de familias judías piemontesas ...López, L. - Destierro y memoria. Trayectorias de familias judías piemontesas ...
López, L. - Destierro y memoria. Trayectorias de familias judías piemontesas ...
 
Límites derivadas e integrales y análisis matemático.pptx
Límites derivadas e integrales y análisis matemático.pptxLímites derivadas e integrales y análisis matemático.pptx
Límites derivadas e integrales y análisis matemático.pptx
 
tecnica de necropsia en bovinos rum.pptx
tecnica de necropsia en bovinos rum.pptxtecnica de necropsia en bovinos rum.pptx
tecnica de necropsia en bovinos rum.pptx
 
DESPOTISMO ILUSTRADOO - copia - copia - copia - copia.pdf
DESPOTISMO ILUSTRADOO - copia - copia - copia - copia.pdfDESPOTISMO ILUSTRADOO - copia - copia - copia - copia.pdf
DESPOTISMO ILUSTRADOO - copia - copia - copia - copia.pdf
 
5.2 DERIVADAS PARCIALES (64RG45G45G45G).pptx
5.2 DERIVADAS PARCIALES (64RG45G45G45G).pptx5.2 DERIVADAS PARCIALES (64RG45G45G45G).pptx
5.2 DERIVADAS PARCIALES (64RG45G45G45G).pptx
 
Campo_magnético_y_fuerzas_magnéticas.pdf
Campo_magnético_y_fuerzas_magnéticas.pdfCampo_magnético_y_fuerzas_magnéticas.pdf
Campo_magnético_y_fuerzas_magnéticas.pdf
 
EXAMEN ANDROLOGICO O CAPACIDAD REPRODUCTIVA EN EQUINOS.pptx
EXAMEN ANDROLOGICO O CAPACIDAD REPRODUCTIVA  EN EQUINOS.pptxEXAMEN ANDROLOGICO O CAPACIDAD REPRODUCTIVA  EN EQUINOS.pptx
EXAMEN ANDROLOGICO O CAPACIDAD REPRODUCTIVA EN EQUINOS.pptx
 
HISTORIA NATURAL DE LA ENFEREMEDAD: SARAMPION
HISTORIA NATURAL DE LA ENFEREMEDAD: SARAMPIONHISTORIA NATURAL DE LA ENFEREMEDAD: SARAMPION
HISTORIA NATURAL DE LA ENFEREMEDAD: SARAMPION
 
Woods, Thomas E. - Cómo la Iglesia construyó la Civilización Occidental [ocr]...
Woods, Thomas E. - Cómo la Iglesia construyó la Civilización Occidental [ocr]...Woods, Thomas E. - Cómo la Iglesia construyó la Civilización Occidental [ocr]...
Woods, Thomas E. - Cómo la Iglesia construyó la Civilización Occidental [ocr]...
 
Diapositiva sobre el conflicto de Israel - Palestina para nivel secundaria
Diapositiva sobre el conflicto de Israel - Palestina para nivel secundariaDiapositiva sobre el conflicto de Israel - Palestina para nivel secundaria
Diapositiva sobre el conflicto de Israel - Palestina para nivel secundaria
 
Codigo rojo manejo y tratamient 2022.pptx
Codigo rojo manejo y tratamient 2022.pptxCodigo rojo manejo y tratamient 2022.pptx
Codigo rojo manejo y tratamient 2022.pptx
 
Harvey, David. - Paris capital de la modernidad [2008].pdf
Harvey, David. - Paris capital de la modernidad [2008].pdfHarvey, David. - Paris capital de la modernidad [2008].pdf
Harvey, David. - Paris capital de la modernidad [2008].pdf
 
Piccato, P. - Historia mínima de la violencia en México [2022].pdf
Piccato, P. - Historia mínima de la violencia en México [2022].pdfPiccato, P. - Historia mínima de la violencia en México [2022].pdf
Piccato, P. - Historia mínima de la violencia en México [2022].pdf
 

Introducción a jupyter (antes i python notebook)

  • 1. INTRODUCCIÓN A JUPYTER (ANTES CONOCIDO COMO IPYTHONNOTEBOOK) POR JUAN IGNACIO RODRÍGUEZ DE LEÓN (@JILEON EN TWITTER, @EURIBATES EN TELEGRAM) Fuentes en https://github.com/euribates/Jupyter-Intro
  • 2. SOBRE LA INSTALACIÓN Normalmente, se usa Jupyter junto a varias librerías: Numpy, Pandas, Scipy, Matplotlib, etc... Si ya usas Python, puedes usar pip para instalar Jupyter. El resto de librerías puede ser más complicado Si eres nuevo, te recomiendo usar Anaconda: Instala Jupyter y un montón de librerías ya compiladas, super sencillo y válido para Mac/Windows/Linux keywords: Install Anaconda
  • 4. ARQUITECTURA DE IJUPYTER MUUUY SIMPLIFICADA Web Notebook iPython Terminal iPython Kernel  ZeroMQ
  • 5. JUPYTER SE DESVINCULA DE IPYTHON Se de ne claramente la interfaz entre el notebook y el nucleo Ahora podemos reemplazar el nucleo de iPython por otro, siempre que cumpla la misma interfaz iPython sigue siendo el kernel por defecto, pero pueden añadirse otros
  • 6. JUPYTER ≊ JULIA + PYTHON + R
  • 7. Y MÁS... ... muchos más: , , , , ... Lista completa en Keywords: Jupyter kernel [Tu lenguaje favorito aquí] Ruby Haskell Node.js Go Scala Octave Bash Rust https://github.com/jupyter/jupyter/wiki/Jupyter- kernels
  • 9. IPYTHON ES PYTHON CON SUPERPODERES
  • 10. UN INTERPRETE DE PYTHON AMPLIADO Puede hacer todo lo que un interprete normal, y más: Comandos "mágicos" Coloreado de sintaxis Autocompletado de código Introspección Mejores ayudas, documentación, debugging, etc...
  • 11. ¿CÓMO LO HACE? while True: orden = espera_orden() if orden.es_especial: procesa_orden_interna(orden) else: salida = ejecuta_en_python(orden) print(salida)
  • 12. EJEMPLO DE LAS CAPACIDADES DE IPYTHON ⚙ Desde la consola, escribimos: ipython
  • 13. COMANDOS MÁGICOS Son ordenes propias de iPython Siempre empiezan por % o %% % para ordenes que afecta una sola línea %% para ordenes que afectan a toda una celda
  • 14. (ALGUNOS) COMANDOS MÁGICOS ⚙ %who y %whos muestran variables de nidas en el espacio actual %lsmagic es una orden mágica que lista todas las ordenes mágicas disponibles %timeit y %%timeit realizan un informe del tiempo de ejecución de una línea o un fragmento de código Keywords: iPython magic commands
  • 15. AYUDAS Y COMPLETADO DE SINTAXIS ⚙ Pulsando TAB Ojo, realiza introspección de lo que tenga en memoria. Lo que no está cargado, lo desconoce Podemos pedir ayuda de cualquier comando, mágico o de python, con ?, antes o despues
  • 16. ¿QUÉ ES UN NOTEBOOK?
  • 17. UNA DEFINICIÓN COMO CUALQUIER OTRA Una aplicación web, que permite ejecutar código a la vez que representar texto con formato, incluyendo imágenes, diagramas y ecuaciones matemáticas de forma integrada
  • 18. ¿PARA QUÉ SIRVE? Consola Python en web Realización de análisis y estudios Informes en vivo Panel de mando Publicaciones interactivas
  • 19. CARACTERÍSTICAS DE LOS NOTEBOOKS Fáciles de compartir Autocontenidos Repetibles Veri cables Modi cables
  • 20. ARRANQUEMOS JUPYTER ⚙ Desde la consola, ejecutar jupyter notebook
  • 21. CREAR UN NUEVO NOTEBOOK ⚙ A la Derecha, elegimos New → Python 3
  • 22. ALGUNOS EJERCICIOS ⚙ Cambiar el título del notebook Ver que el cambio del nombre se re eja en el dashboard Añadir un chero al directorio desde el que arrancamos Jupyter, por ejemplo, en línea de comando: touch notas.md Ver que el dashboard re eja el cambio, sin necesidad de refrescar
  • 23. ANATOMIA DE UN NOTEBOOK
  • 24. UN NOTEBOOK SE DIVIDE EN CELDAS NOTEBOOK = LISTA DE CELDAS + METADATOS
  • 25. HAY VARIOS TIPOS DE CELDAS Celda de texto Celda de código Celda de resultados
  • 26. CELDA DE TEXTO Aceptan markdown, y Html, con lo que podemos darle formato a los textos muy facilmente Podemos incluir fórmulas matemáticas usando el formato de Keywords: Latex Markdown MathJax Jupyter LaTex
  • 27. EJEMPLO DE CELDA DE TEXTO ⚙ Insertar texto en Markdown: negritas, itálicas, una lista... Insertar texto en Html: un párrafo, una imagen... Insertar una formula matemática
  • 28. CELDA DE CÓDIGO ⚙ Imprimir los pares hasta el 20 Cargar y mostrar una imagen Crear un thumbnail de la imagen anterior y mostrarlo Recortar una parte de la imagen y mostrarla Keywords: Pillow Python Image Library
  • 29. CELDA DE RESULTADOS Lo que hemos visto en los resultados anterior Jupyter reconoce tipos de datos diferentes y los puede representar Incluir HTML es superpotente
  • 30. INCUIR UN VIDEO DE YOUTUBE ⚙ Usa el comando mágico %%HTML Busca en compartir vídeo en YouTube, luego embeb Guardianes de la galaxia Vol 2 va a ser la caña
  • 31. COSAS QUE NO TENEMOS TIEMPO DE VER PERO QUE RESULTAN INTERESANTES
  • 32. TODAS LAS FANTÁSTICAS LIBRERÍAS CIENTÍFICAS Y MATEMÁTICAS: NUMPY, PANDAS, MATPLOTLIB, SCIPY... ... pero no te pierdas el siguiente taller, te gustará
  • 33. COMPARTIR Y CONVERTIR A OTROS FORMATOS El formato ipynb es el formato estandar para compartir. Es JSON sencillo. Su estructura es metadatos más lista de celdas. Puedes enviarlo por correo, hacer control de versiones, ponerlo en la web... Convertir a Html estático Convertir a PDF vía Latex Convertir a Restructured Text Convertir a Python / Markdown Keywords: nbconvert
  • 34. USO DE OTROS KERNELS (LENGUAJES) Hay para elegir
  • 35. PROCESAMIENTO EN PARALELO Podemos controlar ejecución en parelelo desde un notebook sobre multiples maquindas. Muy interesante para todo lo que sea BigData Keywords: pyparellel
  • 36. ESCRIBIR NUESTROS PROPIOS KERNELS HAY DOS OPCIONES Implementar el protocolo de comunicaciones con ZeroMQ desde el lenguaje que queremos añadir Más complicado, pero es tu lenguaje favorito. Tu comunidad puede apoyarte. Usar un wrapper en python Las interfaces de comunicaciones ya están creadas, por lo que es más simple.Pero puede que tu lenguaje no se deje wrappear facilmente
  • 37. COMPARTIR NOTEBOOKS Existe soluciones para compartir el misno notebooks entre diferentes personas, cada uno ejecuta su propia version, mientras que el original se mantiene intacto Keywords: JupyterHub
  • 38. SEGURIDAD No hemos visto nada, pero existe
  • 39. ¡GRACIAS A TODOS POR ASISTIR! ¿PREGUNTAS?