Jupyter Notebook es una de las aplicaciones para programar en Python que podemos utilizar. Esta aplicación facilita la creación de documentos que permiten combinar código con otros elementos tales como texto enriquecido, imágenes, enlaces, etc. Esto ha hecho que se convierta en un formato muy utilizado por la comunidad de data science. En concreto, Jupyter Notebook es una aplicación cliente/servidor que puede correr localmente en un navegador de Internet sin necesidad de tener una conexión a Internet. Sin embargo, al tratarse de una aplicación de red también puede ejecutarse remotamente a través de Internet.
Los ficheros producidos por esta aplicación, llamados jupyter notebooks o simplemente notebooks, tienen la extensión .ipynb
, y a priori sólo pueden abrirse desde la misma aplicación Jupyter Notebook. Si bien es cierto que también se pueden abrir con cualquier aplicación de bloc de notas al tratarse en realidad ficheros de texto en formato JSON. En este caso hay que notar que perdemos el formato visual que nos proporciona la aplicación Jupyter Notebook.
La aplicación Jupyter Notebook consta en realidad de dos componentes:
- Kernel: es la parte que se encarga de ejecutar el código que contiene el notebook. En principio el kernel que viene por defecto ejecuta código Python, aunque también se pueden instalar kernels para otros lenguajes.
- Dashboard: esta parte es la que nos muestra los notebooks que tenemos en nuestro ordenador, y se usa también para gestionar los kernels.
Instalar Jupyter Notebook
Para instalar Jupyter Notebook antes necesitamos tener instaladas las versiones de Python 3.3 o superior, o Python 2.7 en nuestro ordenador. Cumplido este prerrequisito, la forma más fácil de instalar Jupyter Notebook en nuestro ordenador es mediante la distribución Anaconda que además nos facilita el acceso a más de 1500 librerías usadas comúnmente como son NumPy, pandas, sci-kit learn o TensorFlow.
Iniciar Jupyter Notebook
Para ejecutar Jupyter Notebook desde Mac o Linux, simplemente tenemos que acceder al terminal e introducir el siguiente comando:
$ jupyter notebook
En caso que utilicemos un entorno Windows, esta operación debe de realizarse a través del programa Anaconda Navigator que podemos encontrar dentro de Anaconda en el menú de inicio.
Cual sea nuestro caso, se nos abrirá automáticamente el dashboard de la aplicación en un navegador con la dirección: http://localhost:8888
. Éste nos muestra un listado de las carpetas y ficheros del directorio actual como si de un explorador de archivos se tratase. Es importante remarcar que localhost
no es una web en sí, sino que indica que el contenido proviene de nuestro propio ordenador.
Usar Jupyter Notebook
Crear un nuevo Notebook
Desde el menú New situado en la parte superior izquierda podemos realizar varias acciones como crear un nuevo notebook, un archivo de texto o una nueva carpetas, así como acceder al terminal. Para crear un nuevo notebook tenemos que seleccionar Python 3, lo cual nos abrirá una nueva pestaña con un notebook en blanco en el cual podemos empezar a escribir nuestro código. Si queremos crear una nueva carpeta tenemos que seleccionar Folder. Esta nueva carpeta se crea dentro del directorio actual con el nombre Untitled Folder el cual podemos cambiar clicando en el botón Rename el cual nos aparece al seleccionar la casilla del directorio. Este procedimiento también es válido para cambiar los nombres de los archivos, y realizar otras operaciones como borrarlos o moverlos, etc.
Todo notebook tiene tres áreas distintas:
- Título: aparece en la parte superior del notebook. Este nombre es por defecto Untitled, pero lo podemos cambiar si cliqueamos en él.
- Barra de herramientas: nos permite gestionar todo lo relacionado con el notebook (crear, guardar, cerrar, etc.), las celdas (copiar, cortar, insertar, etc.) y el kernel (interrumpir, reiniciar, parar, etc.).
- Celdas: son como entradas del intérprete de Python donde podemos escribir nuestro código. Además también les podemos añadir notas e imágenes u otros elementos multimedia.
Las celdas
Existen dos tipos de celdas principales:
- Code: Las celdas de código se identifican por la etiqueta
In [ ]:
que aparece al inicio de la celda. Como su nombre indica, en este tipo de celdas podemos escribir el código Python que va a ejecutar el kernel del notebook. Para ello podemos clicar el botón Run de la barra de herramientas, o simplemente usar el atajo de teclado Shift+Enter. El resultado producido por el código de la celda aparece debajo de la misma. Además, la etiquetaIn[ ]
pasa a contener un número que nos indica el orden de ejecución de las celdas del notebook. Otro aspecto a considerar de las celdas de código es que mientras se ejecutan su etiqueta contiene un asterisco:In [*]
. - Markdown: Las celdas de markdown son en las que podemos incluir nuestros comentarios, imágenes y enlaces usando el lenguaje Markdown el cual tiene una sintaxis muy simple.
Al ejecutar una celda, sea del tipo que sea, aparece otra nueva en blanco que por defecto es de código. Para cambiar el tipo de celda podemos usar el menú desplegable al lado del botón con un teclado en la barra de herramientas y seleccionar la opción deseada. Otra opción es mediante los atajos de teclado: Esc+M para convertir una celda de código a markdown, y Esc+Y para realizar el cambio inverso.
Exportar Notebooks
Además, también podemos exportar nuestros notebooks a otros formatos y compartirlos con quién queramos. En concreto en el menú File → Download as nos da la opción de descargarnos nuestro notebook como un fichero HTML, PDF, Markdown, script de Python o fichero Notebook.
Conclusión
En este post hemos visto todo lo esencial que necesitamos saber para trabajar con Jupyter Notebook: en que consisten, cómo se instala y ejecuta, así como una pincelada a como usarlo. En la documentación oficial, únicamente disponible en inglés, se puede encontrar información mucho más exhaustiva sobre esta aplicación.
Muchas gracias por el tutorial me fue de gran ayuda. Estoy dando los primeros pasos. Saludos desde Argentina
Roberto
De nada Roberto, me alegra que te haya ayudado.
Muchísimas gracias por la información. Muy útil y concisa. Estoy empezando con Python. Saludos desde Venezuela.
De nada Erasmo, esa es la idea, crear contenidos que vayan al grano.