Python para todos (2): ¿Qué son los Jupyter Notebooks?

Tuesday, March 20, 2018

Python para todos (2): ¿Qué son los Jupyter Notebooks?


¿Qué son los Jupyter Notebooks? Los Jupyter Notebooks son quizás la aplicación más conocida del Proyecto Jupyter, creado en 2014 con el objetivo de desarrollar software open-source, open-standards, y servicios de computación interactiva compatibles con distintos de lenguajes de programación. 

 Logo Jupyter Project.
Figura 1: Logo Jupyter Project.

Los Jupyter Notebooks son una aplicación web, también de código abierto que nos va a permitir crear y compartir documentos con código en vivo, ecuaciones, visualizaciones y texto explicativo. Estos documentos registran todo el proceso de desarrollo y, lo más interesante, pueden ser compartidos fácilmente con otras personas a través de correo electrónico, Dropbox, sistemas de control de versiones como git/GitHub y nbviewer.

Entre sus usos están:
  • la limpieza y transformación de datos
  • la simulación numérica
  • el modelado estadístico
  • el aprendizaje automático
  •  y mucho más.

¿Por qué Jupyter?


Como curiosidad, se les “bautizó” con el nombre de Jupyter, (de deletreo algo complejo, al menos para hispanohablantes) por diferentes motivos. Por un lado, por las connotaciones científicas que conlleva la alusión al planeta “Júpiter”, cuyas lunas fueron protagonistas de lo que se considera una de las primeras publicaciones científicas sustentadas por datos, garantizando, de esta forma su reproducibilidad. Dado que uno de los objetivos que inspiran el proyecto Jupyter es precisamente éste, facilitar la compartición y reproducibilidad de los proyectos y experimentos (científicos y de todo tipo), sus creadores decidieron reflejarlo de esta forma en su nombre. Por otra parte, aunque “Jupyter” no sea exactamente un acrónimo, si hace honor a Julia, Python y R, los lenguajes de programación core soportados en este entorno. En particular, la “y” central fue elegida como homenaje a la herencia Python, ya que Jupyther surgió como una evolución de iPython.


¿Quién los usa?


Cualquier persona que trabaja en desarrollo de software o entornos de tecnología en el sentido más amplio, desde estudiantes de secundaria que están dando sus primeros pasos en programación, hasta los ingenieros y científicos más especializados. ¡Y ahora, también nosotros!

Así, los Jupyter Notebooks se usan en entornos académicos (UC Berkeley, Stanford, UW, NYU, Cal Poly, etc.), de investigación en el sector público (NASA JPL, KBase), y también en el sector privado (IBM, Facebook, Microsoft, Bloomberg, JP Morgan, WhatsApp, Quantopian, GraphLab, Enthought,etc.). Al tratarse de una arquitectura de módulos abiertos, son ampliamente utilizados para crear todo tipo de soluciones y servicios, tanto comerciales como sin ánimo de lucro.

¿Cómo accedemos?


Podemos usarlo remotamente o en local. Desde la propia página web del proyecto podemos elegir probarlo en nuestro browser “Try it in your browser”, o instalárnoslo en localInstall the Notebook”. También se puede instalar directamente desde la herramienta de instalación de paquetes de Python pip. No obstante, la forma más sencilla de instalarlo (de hecho, la que hemos usado nosotros en el post anterior), es instalando Anaconda.


Página web del proyecto. Podemos probarlo desde el browser o instalarlo en local.
Figura 2: Página web del proyecto. Podemos probarlo desde el browser o instalarlo en local.

Así que ya tenemos todo listo para empezar a utilizar este nuevo entorno de trabajo que está revolucionando la forma de trabajar en el mundo de los datos.


Accedemos al entorno.


En el post anterior, instalamos Anaconda. Si todo ha ido correctamente, podremos abrir Jupyter Notebook directamente desde el menú de Windows: 

 Acceso desde el menú Windows.
Figura 3: Acceso desde el menú Windows.

Se abre una ventana de comandos que lanza automáticamente la interfaz que está dividida en tres pestañas: “Files”, Running” y “clusters”. Por defecto, se abre por “Files” que es donde podremos crear nuevos notebooks o abrir uno existente.


Interfaz de Jupyter.
Figura 4: Interfaz de Jupyter.

Creamos un notebook y le damos nombre.


Para crear un notebook no tenemos más que seleccionar la opción “New” que aparece en la esquina superior derecha.

Desde el menú New creamos un nuevo notebook Python.
Figura 5: Desde el menú "New" creamos un nuevo notebook Python.

Una vez creado, le asignamos un nombre haciendo “click” sobre “Untitled” .


Se crea como "untitled".
Figura 6: Se crea como "untitled".


Podemos llamarle MiPrimerNotebookPython (¡o como queramos!).


Renombramos el notebook.
Figura 7: Renombramos el notebook.

Ahora podemos ver, al final de la lista, nuestro nuevo notebook. También podemos ver su estado “Running”. 


Al final de la lista aparece el nuevo notebook.
Figura 8: Al final de la lista aparece el nuevo notebook.

Lo abrimos simplemente haciendo click sobre el nombre y vemos que consiste en una serie de celdas dentro de las cuales podemos escribir directamente el código. Al hacer click dentro de la celda, observamos que cambia el color del borde de azul a verde. Eso significa que cambiamos de modo comando (azul), a modo edición (verde). Cambiar de uno a otro es tan sencillo como hacer click dentro de la celda o pulsar escape. 


Celda en modo comando (azul).
Figura 9: Celda en modo comando (azul).

Una vez en modo edición, podemos empezar a escribir los comandos que queramos. Puedes probar con alguno de los que usaste en el post anterior del tutorial, o con algo muy sencillo como esto. Escribe:

  print (“loquetúquieras”)


Probamos con el comando print.
Figura 10: Probamos con el comando print.

Para ejecutar el código, puedes elegir la opción “Run Cells” dentro del menú “Cell” o bien pulsar “Ctrl+Intro”. El resultado aparece justo debajo:


Resultado de ejecución de la celda.
Figura 11: Resultado de ejecución de la celda.

Crear un “Checkpoint”


Otra de las funcionalidades  más interesantes de Jupyter Notebook es que te da la posibilidad de crear “checkpoints” o puntos de referencia. Cuando crear un checkpoint lo que haces en realidad es guardar el estatus del notebook en ese preciso instante de forma que puedas volver a ese punto concreto y deshacer los cambios que se hayan hecho después. Esto, evidentemente es muy interesante cuando estás haciendo pruebas y algo no sale bien. Puedes volver sin problemas al punto dónde todo era correcto sin necesidad de empezar otra vez desde el principio. 

Para crear un checkpoint, tan sólo hay que seleccionar la opción “Save and Checkpoint” desde el menú “File”. Para volver a un checkpoint anterior, no hay más que seleccionar el que nos interese del mentú “File/revert to checkpoint”.


Cómo volver a un checkpoint anterior.
Figura 12: Cómo volver a un checkpoint anterior.


Exportar un Notebook


Por último, para exportar el notebook, debes seleccionar la opción que más te interese dentro del menú: "File/Download as". Podrás elegir entre formato notebook (ipynb), python (py), html, markdown, latex, pdf etc.

En el siguiente post hablaremos de las librerías y acabaremos de preparar el entorno para nuestro experimento de machine learning. Mientras tanto, te recomendamos que explores los menús de ayuda de Jupyter Notebooks, y pruebes algunos comandos sencillos para empezar a conocer un poco el entorno. En éste vídeo de CodingtheSmartWay encontrarás algunos ejemplos para practicar.





 Todos los post de este tutorial, aquí:


2 comments:

  1. Nos alegramos mucho, Alberto. Como viene la Semana Santa y mucha gente estará de vacaciones, el siguiente lo publicaremos el 2 de abril. Mientras tanto, ¡a practicar! ;-)

    ReplyDelete