Optimiza Tu Flujo de Trabajo en Ciencia de Datos: Notebooks vs Scripts

0 Comments

September 9, 2024 in blog

Insert Audio

Hoy en día, los notebooks de Jupyter son la herramienta más popular para desarrollar soluciones en Ciencia de Datos. Si bien son muy útiles para experimentar e implementar ideas durante la fase de exploración y desarrollo, no siempre son la mejor opción cuando queremos crear soluciones robustas y escalables.

¿Qué formas de programar en Python existen? Script vs. Interactivo

Las dos formas más comunes de programar en Python, y las que la mayoría de las personas conocen, son mediante scripts y de manera interactiva.

Scripts

Esta es la forma clásica de programar, que data de mucho antes de la creación de Python. En este método, escribimos un código con un principio y un fin. Al ejecutarlo, se procesa en su totalidad y, una vez terminado, todos los valores, parámetros y variables que se hayan creado se borran de la memoria. Es decir, si queremos ejecutar otro bloque de código, este no tendrá acceso a los datos generados previamente.

Programación interactiva

Una de las características más destacadas de Python es su soporte para la programación interactiva. Esto se puede ver cuando ejecutamos:

> python

Aparecerá una consola donde podemos escribir y ejecutar comandos uno por uno. Las variables y funciones que definamos permanecerán en memoria hasta que salgamos del programa. Esto nos permite tener una memoria persistente mientras trabajamos.

Sin embargo, programar de esta manera puede no ser tan cómodo, y aquí es donde entran en juego los notebooks. Estos ofrecen un entorno interactivo con muchas características adicionales, que detallo a continuación.

Ventajas de utilizar notebooks

  • División del código en celdas: Esto permite segmentar el código en bloques específicos: uno para importar librerías, otro para definir funciones o clases, y otros para implementar diferentes partes del desarrollo.
  • Programación interactiva y ejecución selectiva: Los notebooks nos permiten ejecutar solo ciertas partes del código sin tener que correr todo el programa, lo que es útil cuando trabajamos con programas largos o queremos probar solo una sección específica.
  • Escritura en Markdown: Una de mis características favoritas. Intercalar celdas de código con celdas de texto formateado permite documentar el código de manera clara y estructurada, con la posibilidad de agregar títulos, tablas, figuras, y mucho más.

Principales problemas de usar notebooks

A pesar de sus ventajas, los notebooks de Jupyter presentan algunas limitaciones cuando se trata de implementar soluciones completas en Ciencia de Datos.

  • Ejecución en orden arbitrario: Aunque dividir el código en celdas es útil, puede causar problemas si las celdas no se ejecutan en el orden correcto. Si modificamos una celda que define un parámetro y luego ejecutamos otra anterior que depende de ese valor, podríamos obtener resultados incorrectos. Este “desorden” puede ser problemático si no somos lo suficientemente organizados.
  • Velocidad y consumo de memoria: Los notebooks suelen ser más lentos que los scripts, ya que mantienen todo en memoria hasta que detenemos el kernel. Esto aumenta el consumo de recursos.
  • No aptos para desplegar soluciones: Si queremos poner en producción una solución desarrollada en un notebook, necesitaremos convertir el código en un script. Esto se debe a que los scripts son más predecibles y eficientes para ejecutar en entornos de producción.

Recomendaciones para programar en Python

Cada enfoque tiene sus ventajas y desventajas. Aquí te explico cómo suelo estructurar mi flujo de trabajo:

  1. Exploración y desarrollo inicial: Utilizo notebooks para experimentar con diferentes versiones de una funcionalidad, probar ideas, y evitar tener que ejecutar todo el programa cada vez que hago un cambio. Esto es especialmente útil cuando trabajo con grandes volúmenes de datos o modelos de Machine Learning.
  2. Migración a scripts: Una vez que tengo claro cómo quiero implementar una funcionalidad, la traslado a un script. Aquí pruebo el código dentro del contexto completo de la solución.
  3. Despliegue en una aplicación web: Normalmente, desarrollo aplicaciones usando Streamlit. Para esto, es esencial que el código esté en formato de script para poder integrarlo fácilmente en la app.

Cuando trabajo con datos, es recomendable tener el pipeline de preprocesamiento en un script. Al igual que en el desarrollo de funcionalidades, puedo experimentar en un notebook y luego pasar el código a un script para procesar datos nuevos de manera rápida y eficiente.

Conclusiones

El objetivo de este artículo es que conozcas las dos principales formas de programar en Python, sus ventajas y desventajas, y que sepas cuándo es más conveniente usar una u otra.

Si estás en plena transición hacia la Ciencia de Datos y te resulta difícil conseguir tu primer empleo en esta área, he creado un simulador de entorno laboral donde aprenderás cómo se trabaja en equipo dentro del mundo profesional de Ciencia de Datos. En este workshop, abordarás un proyecto de principio a fin: desde la definición del problema hasta la creación de una app web para mostrar los resultados, incluyendo la presentación al cliente.

Durante el workshop, te guiaré como líder técnico, compartiendo todo lo que he aprendido a lo largo de mi carrera. Aprenderás sobre planteamiento del problema, definición de la solución, arquitectura, gestión del proyecto, construcción de la app web y mucho más. Visita lucianodarriba.com/datalab-workshop para más información.


Si querés cambiar de carrera hacia Inteligencia Artificial y no sabés cómo empezar, te recomiendo lo siguiente:

Escuchar mi podcast, Inteligencia Aumentada, en Spotify

Seguirme en LinkedIn

Visitá mi página personal

Si estás haciendo la transición hacia ciencia de datos y te cuesta conseguir tu primer empleo, creé el DataLab Workshop que te ayudará a destacar en tu búsqueda laboral.

¿Que es el Datalab Workshop?

Es una experiencia donde aprenderás a trabajar en equipo junto con otros científicos de datos como vos, a resolver un problema de ciencia de datos de punta a punta, desde el planteamiento del problema hasta el despliegue y la presentación de la solución, igual que como se hace en el ámbito profesional. Visita la página aquí: DataLab Workshop.

Con todos estos recursos, ¡no tenés excusas! Tu cambio puede empezar hoy.

About the author 

lucianodarriba

{"email":"Email address invalid","url":"Website address invalid","required":"Required field missing"}
Subscribe to get the latest updates
>