Cómo optimizar su portátil Jupyter

Introducción

Jupyter Notebook es hoy en día probablemente el entorno más utilizado para resolver tareas de aprendizaje automático / ciencia de datos en Python.

Jupyter Notebook es una aplicación cliente-servidor que se utiliza para ejecutar documentos de notebook en el navegador. Los documentos de Notebook son documentos que pueden contener tanto código como elementos de texto enriquecido, como párrafos, ecuaciones, etc.

En este artículo, lo guiaré a través de algunos trucos simples sobre cómo mejorar su experiencia con Jupyter Notebook. Comenzaremos con atajos útiles y terminaremos agregando temas, tablas de contenido generadas automáticamente y más.

Atajos

Los atajos pueden ser realmente útiles para acelerar la escritura de su código. Ahora lo guiaré a través de algunos de los atajos que encontré más útiles para usar en Jupyter.

Hay dos formas posibles de interactuar con Jupyter Notebook: modo de comando y modo de edición. Algunos atajos funcionan solo en un modo u otro, mientras que otros son comunes a ambos modos.

Algunos atajos que son comunes en ambos modos son:

  • Ctrl + Enter : para ejecutar todas las celdas seleccionadas
  • Shift + Enter : ejecuta la celda actual y mueve la siguiente
  • Ctrl + s : guardar cuaderno

Para ingresar al modo de comando de Jupyter, debemos presionar Esc y luego cualquiera de los siguientes comandos:

  • H : muestra todos los accesos directos disponibles en Jupyter Notebook
  • Shift + Flecha arriba / abajo : para seleccionar varias celdas del cuaderno al mismo tiempo (¡presionar enter después de seleccionar varias celdas hará que todas se ejecuten!)
  • A : inserte una nueva celda arriba
  • B : inserte una nueva celda a continuación
  • X : cortar las celdas seleccionadas
  • Z : deshacer la eliminación de una celda
  • Y : cambia el tipo de celda a Código
  • M : cambia el tipo de celda a Markdown
  • Espacio : desplazar el cuaderno hacia abajo
  • Mayús + Espacio : desplazar el cuaderno hacia arriba

Para ingresar al modo de edición de Jupyter en su lugar, debemos presionar Enter y sucesivamente cualquiera de los siguientes comandos:

  • Pestaña : sugerencias de competencia de código
  • Ctrl +] : código de sangría
  • Ctrl + [ : código dentado
  • Ctrl + z : deshacer
  • Ctrl + y : rehacer
  • Ctrl + a : seleccionar todo
  • Ctrl + Inicio : mueve el cursor al inicio de la celda
  • Ctrl + Fin : mueve el cursor al final de la celda
  • Ctrl + Izquierda : mueve el cursor una palabra a la izquierda
  • Ctrl + Derecha : mueve el cursor una palabra a la derecha

Instalación de paquetes y comandos de Shell

No muchos usuarios son conscientes de esto, pero es posible ejecutar comandos de shell en una celda de cuaderno de Jupyter agregando un signo de exclamación al comienzo de la celda. Por ejemplo, ejecutar una celda con ! Ls devolverá todos los elementos del directorio de trabajo actual. Al ejecutar una celda con ! Pwd, se imprimirá la ruta del archivo del directorio actual.

Este mismo truco también se puede aplicar para instalar paquetes de Python en el cuaderno Jupyter.

!pip install numpy

Temas de Jupyter

Si está interesado en cambiar el aspecto de su portátil Jupyter, es posible instalar un paquete con una colección de diferentes temas. El tema predeterminado de Jupyter se parece al de la Figura 1. En la Figura 2 verá cómo podremos personalizar su aspecto.

Podemos instalar nuestro paquete directamente en el cuaderno usando el truco que les mostré en la sección anterior:

!pip install jupyterthemes

Podemos ejecutar el siguiente comando para listar los nombres de todos los temas disponibles:

!jt -l # Cell output: # Available Themes: # chesterish # grade3 # gruvboxd # gruvboxl # monokai # oceans16 # onedork # solarizedd # solarizedl

Finalmente, podemos elegir un tema usando el siguiente comando (en este ejemplo decidí usar el tema solarized1):

!jt -t solarizedl

Una vez que hayamos ejecutado este comando y actualizado la página, nuestro cuaderno debería verse como el de la Figura 2.

En caso de que desee volver al tema original del cuaderno de Jupyter en cualquier momento, puede ejecutar el siguiente comando y actualizar su página.

!jt -r

Extensiones de Jupyter Notebook

Las extensiones de notebook se pueden utilizar para mejorar la experiencia del usuario y ofrecer una amplia variedad de técnicas de personalización.

En este ejemplo, usaré la biblioteca nbextensions para instalar todos los widgets necesarios (esta vez le sugiero que primero instale los paquetes a través de la terminal y luego abra el cuaderno Jupyter). Esta biblioteca hace uso de diferentes modelos de Javascript para enriquecer la interfaz del portátil.

! pip install jupyter_contrib_nbextensions ! jupyter contrib nbextension install --system

Una vez que nbextensions esté instalado, notará que hay una pestaña adicional en la página de inicio de su computadora portátil Jupyter (Figura 3).

Al hacer clic en la pestaña Nbextensions, se nos proporcionará una lista de widgets disponibles. En mi caso, decidí habilitar los que se muestran en la Figura 4.

Algunas de mis extensiones favoritas son:

  1. Tabla de contenido

Auto-generate a table of contents from markdown headings (Figure 5).

2. Snippets

Sample codes to load common libraries and create sample plots which you can use as a starting point for your data analysis (Figure 6).

3. Hinterland

Code autocompletion for Jupyter Notebooks (Figure 7).

The nbextensions library provides many other extensions apart for these three, so I encourage you to experiment and test any other which can be of interest for you!

Markdown Options

By default, the last output in a Jupyter Notebook cell is the only one that gets printed. If instead we want to automatically print all the commands without having to use print(), we can add the following lines of code at the beginning of the notebook.

from IPython.core.interactiveshell import InteractiveShell InteractiveShell.ast_node_interactivity = "all"

Additionally, it is possible to write LaTex in a Markdown cell by enclosing the text between dollar signs ($).

Notebook Slides

It is possible to create a slideshow presentation of a Jupyter Notebook by going to View -> Cell Toolbar -> Slideshow and then selecting the slides configuration for each cell in the notebook.

Finally, by going to the terminal and typing the following commands the slideshow will be created.

pip install jupyter_contrib_nbextensions # and successively: jupyter nbconvert my_notebook_name.ipynb --to slides --post serve

Magic

Magics are commands which can be used to perform specific commands. Some examples are: inline plotting, printing the execution time of a cell, printing the memory consumption of running a cell, and so on.

Magic commands which start with just one % apply their functionality just for one single line of a cell (where the command is placed). Magic commands which instead start with two %% are applied to the whole cell.

It is possible to print out all the available magic commands by using the following command:

%lsmagic

Contact info

If you want to keep updated with my latest articles and projects follow me and subscribe to my mailing list. These are some of my contact details:

  • Linkedin
  • Personal Blog
  • Personal Website
  • Medium Profile
  • GitHub
  • Kaggle

Cover photo from this article.