Introducción a jupyter (antes i python notebook)
-
Upload
juan-rodriguez -
Category
Science
-
view
134 -
download
3
Transcript of Introducción a jupyter (antes i python notebook)
INTRODUCCIÓN A
JUPYTER(ANTES CONOCIDO COMO IPYTHON NOTEBOOK)
POR JUAN IGNACIO RODRÍGUEZ DE LEÓN (@JILEON EN TWITTER, @EURIBATES ENTELEGRAM)
Fuentes en https://github.com/euribates/Jupyter-Intro
SOBRE LA INSTALACIÓNNormalmente, se usa Jupyter junto a varias librerías:Numpy, Pandas, Scipy, Matplotlib, etc...
Si ya usas Python, puedes usar pip para instalarJupyter. El resto de librerías puede ser máscomplicadoSi eres nuevo, te recomiendo usar Anaconda:Instala Jupyter y un montón de librerías yacompiladas, super sencillo y válido paraMac/Windows/Linux
keywords: Install Anaconda
EVOLUCIÓN HISTÓRICAiPythoniPython notebookJupyter notebook (Language agnostic)
ARQUITECTURA DE IJUPYTERMUUUY SIMPLIFICADA
WebNotebook
iPythonTerminal
iPython Kernel
ZeroMQ
JUPYTER SE DESVINCULA DE IPYTHONSe de�ne claramente la interfaz entre el notebook yel nucleoAhora podemos reemplazar el nucleo de iPython porotro, siempre que cumpla la misma interfaziPython sigue siendo el kernel por defecto, peropueden añadirse otros
Y MÁS...
... muchos más: , , , , ...Lista completa en
Keywords: Jupyter kernel [Tu lenguajefavorito aquí]
RubyHaskellNode.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 AMPLIADOPuede hacer todo lo que un interprete normal, y más:
Comandos "mágicos"Coloreado de sintaxisAutocompletado de códigoIntrospecciónMejores 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ÁGICOSSon ordenes propias de iPythonSiempre 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 elespacio actual%lsmagic es una orden mágica que lista todas lasordenes mágicas disponibles%timeit y %%timeit realizan un informe deltiempo de ejecución de una línea o un fragmento decódigo
Keywords: iPython magic commands
AYUDAS Y COMPLETADO DE SINTAXIS ⚙Pulsando TABOjo, realiza introspección de lo que tenga enmemoria.Lo que no está cargado, lo desconocePodemos pedir ayuda de cualquier comando, mágicoo de python, con ? , antes o despues
¿QUÉ ES UN NOTEBOOK?
UNA DEFINICIÓNCOMO CUALQUIER OTRA
Una aplicación web, que permite ejecutar código a lavez que representar texto con formato, incluyendoimágenes, diagramas y ecuaciones matemáticas de
forma integrada
¿PARA QUÉ SIRVE?Consola Python en webRealización de análisis y estudiosInformes en vivoPanel de mandoPublicaciones interactivas
CARACTERÍSTICAS DE LOS NOTEBOOKSFáciles de compartirAutocontenidosRepetiblesVeri�cablesModi�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 notebookVer que el cambio del nombre se re�eja en eldashboardAñadir un �chero al directorio desde el quearrancamos Jupyter, por ejemplo, en línea decomando: touch notas.mdVer que el dashboard re�eja el cambio, sin necesidadde refrescar
ANATOMIA DE UN NOTEBOOK
UN NOTEBOOK SE DIVIDE EN CELDASNOTEBOOK = LISTA DE CELDAS + METADATOS
HAY VARIOS TIPOS DE CELDAS
Celda de textoCelda de códigoCelda de resultados
CELDA DE TEXTO
Aceptan markdown, y Html, con lo que podemosdarle formato a los textos muy facilmentePodemos incluir fórmulas matemáticas usando elformato de
Keywords: Latex Markdown MathJax Jupyter
LaTex
EJEMPLO DE CELDA DE TEXTO ⚙
Insertar texto en Markdown: negritas, itálicas, unalista...Insertar texto en Html: un párrafo, una imagen...Insertar una formula matemática
CELDA DE CÓDIGO ⚙
Imprimir los pares hasta el 20Cargar y mostrar una imagenCrear un thumbnail de la imagen anterior y mostrarloRecortar una parte de la imagen y mostrarla
Keywords: Pillow Python Image Library
CELDA DE RESULTADOSLo que hemos visto en los resultados anteriorJupyter reconoce tipos de datos diferentes y lospuede representarIncluir HTML es superpotente
INCUIR UN VIDEO DE YOUTUBE ⚙Usa el comando mágico %%HTMLBusca en compartir vídeo en YouTube, luego embebGuardianes de la galaxia Vol 2 va a ser la caña
COSAS QUE NO TENEMOS TIEMPO DE VERPERO QUE RESULTAN INTERESANTES
TODAS LAS FANTÁSTICAS LIBRERÍAS CIENTÍFICAS YMATEMÁTICAS: NUMPY, PANDAS, MATPLOTLIB, SCIPY...
... pero no te pierdas el siguiente taller, te gustará
COMPARTIR Y CONVERTIR A OTROS FORMATOSEl formato ipynb es el formato estandar paracompartir. Es JSON sencillo. Su estructura esmetadatos más lista de celdas. Puedes enviarlo porcorreo, hacer control de versiones, ponerlo en laweb...Convertir a Html estáticoConvertir a PDF vía LatexConvertir a Restructured TextConvertir a Python / Markdown
Keywords: nbconvert
USO DE OTROS KERNELS (LENGUAJES)Hay para elegir
PROCESAMIENTO EN PARALELOPodemos controlar ejecución en parelelo desde un
notebook sobre multiples maquindas. Muy interesantepara todo lo que sea BigData
Keywords: pyparellel
ESCRIBIR NUESTROS PROPIOS KERNELSHAY DOS OPCIONES
Implementar el protocolo de comunicaciones conZeroMQ desde el lenguaje que queremos añadir
Más complicado, pero es tu lenguaje favorito. Tucomunidad puede apoyarte.
Usar un wrapper en pythonLas interfaces de comunicaciones ya estáncreadas, por lo que es más simple.Pero puede quetu lenguaje no se deje wrappear facilmente
COMPARTIR NOTEBOOKSExiste soluciones para compartir el misno notebooksentre diferentes personas, cada uno ejecuta su propiaversion, mientras que el original se mantiene intacto
Keywords: JupyterHub
SEGURIDADNo hemos visto nada, pero existe
¡GRACIAS A TODOS PORASISTIR!¿PREGUNTAS?