Agregar servicios de ciencia de datos: control maestro de versiones para portátiles Jupyter | de Alessandro Tomassini | enero, 2024

Una guía práctica que facilita la colaboración y la reproducibilidad con Jupytext, nbstripout y nbconvert.

Alessandro Tomassini
Hacia la ciencia de datos
Imagen creada con DALL-E

En el trabajo de un científico de datos, la gestión eficaz de los portátiles Jupyter con sistemas de control de versiones es fundamental. Esto no es sólo para mantener un flujo de trabajo organizado, sino también para garantizar la repetibilidad y facilitar la colaboración entre los miembros del equipo. En esta guía, exploraremos tres herramientas principales: Jupytext, nbstripout y nbconvert, cada una con sus características únicas. Proporcionaré explicaciones detalladas, ejemplos prácticos y una visión (con suerte) equilibrada de sus ventajas y desventajas, ayudándole a determinar la mejor herramienta de control de versiones de portátiles para sus necesidades específicas.

Los cuadernos Jupyter, si bien son excelentes para el análisis y la visualización de datos exploratorios, presentan problemas en lo que respecta al control de versiones. Esto se debe principalmente a que estos cuadernos no son sólo archivos de texto sin formato, sino que en realidad están estructurados como documentos JSON. Este formato, si bien es apto para mantener una combinación compleja de código, texto y datos de salida, presenta muchos desafíos cuando se trata de la gestión de versiones en sistemas como Git. Para ilustrar este problema, creemos un cuaderno demo_notebook.py que genere un diagrama simple:

import matplotlib.pyplot as plt
import numpy as np

time = np.linspace(0, 10, 1000)
plt.plot(time, np.sin(np.pi*time**2))
plt.xlabel("Time")
plt.ylabel("Amplitude")
plt.title("signal with time-varying frequency")

Foto del autor

Luego iniciamos un repositorio git en la carpeta que contiene el cuaderno y lo usamos. fold para mirar el cuaderno.

cd my_folder
git init
fold -s -w100 demo_notebook.ipynb

A continuación se muestra el contenido del cuaderno en formato JSON (truncado para facilitar la lectura). Inmediatamente resulta que la estructura JSON contiene no solo código de entrada sino también metadatos y salida…

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *