Recuperar el resultado de una celda en Jupyter

Publicado el 23 enero 2023 por Daniel Rodríguez @analyticslane

Al trabajar en un Notebook de Jupiter es posible que después de ejecutar un comando que requiere bastante tiempo nos demos cuenta de que no se ha asignado el resultado a una variable. Podríamos pensar que la única solución sería modificar el código y volver a ejecutarlo. Pero existe una solución mejor, se puede recuperar los resultados de cualquier celda en Jupyter con un simple truco.

Obtener el resultado de una celda en Jupyter

Supongamos que se ha ejecutado el siguiente código en un notebook.

En la celda se han definido dos variables y sumado el valor, pero no se ha asignado el resultado a una nueva variable. Para solucionar el problema en este ejemplo lo más sencillo es asignar la operación a una variable y volver a ejecutar la celda. Pero no es así si lo que se ejecuta en la celda es el entrenamiento de un modelo que requiere varios minutos para finalizar. Tener que volver a ejecutar la celda para acceder al resultado es una pérdida de tiempo.

Para evitar tener que volver a ejecutar el código nos podemos fijar en que todas las celdas comienzan por In[] y los resultados por Out[]. Lo que hace referencia a dos variables de IPython en las que se guardan respectivamente las entradas y salidas de todas las celdas ejecutadas. Así para recuperar el resultado de una celda en Jupyter solamente se debe escribir en la siguiente celda Out[1].

En un caso genérico solamente se debe reemplazar 1 por el valor de la celda que se desea recuperar.

Recuperar el código de una celda

Otra utilidad de este conjunto de variables de IPython es la posibilidad de recuperar el código de una celda. Incluso aquellas que se han borrado del Notebook. De forma análoga a como se ha realizado anteriormente se puede acceder al contenido de In para obtener el código que se ha ejecutado anteriormente.

Las variables In y Out de IPython

En base a lo visto es importante no definir elementos con los nombres In o Out cuando se está trabajando con IPython, tanto en un Notebook como en la terminal. Aunque se puede seguir trabajando después de definir los elementos, se pierde una importante herramienta para revisar todo el trabajo.

Conclusiones

Las variables In y Out son dos propiedades de IPython que nos pueden ahorrar mucho tiempo cuando se trabaja en un Notebook. Permitiendo recuperar tanto el código como el resultado de una celda en Jupyter, incluso de aquellas que se han borrado. Con lo que es posible evitar la necesidad de ejecutar varias veces el mismo código o incluso recuperar códigos o resultados eliminados.