Los Jupyter Notebooks son una herramienta web con la que se puede ejecutar código de forma interactiva, almacenar los resultados y documentar el proceso. Actualmente es muy popular para explicar las técnicas y los procedimientos empleados en tareas de análisis de datos. Una de las características más poderosas de Jupyter Notebooks son los comandos mágicos. Los que son accesos directos a funciones con las que es posible realizar ciertas tareas habituales de una forma más cómoda y rápida. En esta entrada se van a mostrar seis de los comandos mágicos de Jupyter Notebooks más interesantes.
Medir el tiempo de ejecución
Uno de los problemas más habituales es saber cuanto tiempo tarda en ejecutarse un código. El tiempo de una celda se puede obtener mediante un complemento de Jupyter. Pero si únicamente se desea conocer el tiempo de una función es mejor utilizar los comandos mágicos %time
o %timeit
. Ambos permiten medir el tiempo de ejecución de la instrucción escrita inmediatamente después en la misma línea. Por un lado, el comando %time
mide el tiempo de CPU (dividido en usuario, sistema y total) y el de reloj. Por otro lado, %timeit
utiliza el módulo timeit
de Python para medir el tiempo medio de ejecución. El funcionamiento de estos comandos se puede ver en el siguiente ejemplo.
%time task() # CPU times: user 15.7 ms, sys: 4.83 ms, total: 20.5 ms # Wall time: 18.3 ms %timeit task() # 10.1 ms ± 159 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)
La principal diferencia entre ambos es que %time
ejecuta el comando una sola vez mientras que %timeit
lo hace varias para calcular la media. Por lo que la segunda opción es más lenta pero más fiable.
Existe una versión alternativa de estos comandos con dos símbolos de tanto por ciento. En tal caso miden el tiempo de las líneas situadas inmediatamente después del comando.
%%time task() task() # CPU times: user 20.7 ms, sys: 1.19 ms, total: 21.9 ms # Wall time: 20.6 ms %%timeit task() task() # 20.5 ms ± 243 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)
Mostrar los gráficos en los Notebooks
Uno de los comandos mágicos más utilizado es %matplotlib
, por lo que es habitual encontrarlo en muchos Notebooks. La utilización de este comando garantiza que Jupyter Notebooks muestre los gráficos.
Carga automática de referencia
Al importar una referencia en un Notebook esta se cargará en memoria. Si posteriormente a la importación se modifica el archivo los cambios introducidos no tendrán efecto hasta que se reincide el núcleo. Este comportamiento en la mayoría de los casos no es un problema, salvo que se esté desarrollando una librería y se deseen probar los cambios. Para solucionar este problema se puede utilizar el comando mágico %load_ext autoreload
. Al utilizar este comando las referencias se actualizarán automáticamente cada vez que se modifique el archivo.
Acceso a la terminal del sistema
La terminal del sistema operativo es una herramienta con las que se pueden hacer muchas tareas. Por lo que puede ser interesante acceder a la misma desde un Notebooks. Para ello se puede utilizar el comando mágico %system
seguido del comando del comando de la terminal. Por ejemplo, se puede consultar la versión de Python instalada
%system python -V
Listado de variables
En Jupyter Notebooks se puede utilizar un complemento para consultar el listado de variables. Esta información también se puede conseguir con un comando mágico: %who_ls
. Al ejecutarlo se mostrará la lista de variables existentes en el entorno.
a = 1 b = 2 c = a + b %who_ls
['NamespaceMagics', 'a', 'autopep8', 'b', 'c', 'get_ipython', 'getsizeof', 'json', 'np', 'var_dic_list']
Configuración de los Jupyter Notebooks
Finalmente, también existe un comando mágico de Jupyter Notebooks para configurar las opciones del entorno IPython: %config
. Para cambiar una opción, simplemente es necesario llamar a este comando seguido de la opción a configurar. Por ejemplo, este comando se utilizó por ejemplo para configurar el uso de la resolución HDPi en las pantallas.
Conclusiones
En esta entrada se han visto seis comandos mágicos de Jupyter Notebooks con los que facilita el trabajo con esta herramienta. El listado completo de los comandos se puede consultar en la documentación. ¿Qué comando os parecen más interesantes? Podéis dejar la respuesta en los comentarios de la entrada.
Imágenes: Pixabay (Pexels)
Deja una respuesta