Tutorial para crear tu entorno de trabajo en Ciencia de Datos

Tutorial, Online, 2024

En este tutorial vamos trabajar en la creación del entorno de trabajo para introducirnos en el mundo de la Ciencias de Datos y la Inteligencia Artificial. Fundamentalmente empleando los Jupyter Notebook.

¿En qué lugares programar?

  • En tu navegador
  • Local
  • En el servidor de tu empresa
  • En tu celular
  • No importa el sistema operativo: Linux, Windows, Unix
  • No importa que herramienta emplees: Deepnote, Jupyter, Ipython, Visual Studio Code, Google Colaboratory.

Herramientas Online

Jupyter Notebooks

Los Jupyter Notebooks son herramientas interactivas que combinan código, texto y visualizaciones, facilitando un ciclo dinámico de prueba y error en análisis de datos. Permiten documentar procesos de manera intuitiva usando texto enriquecido, imágenes y gráficos. Se pueden usar para prototipado y presentación de resultados, además de ser compatibles con múltiples lenguajes como Python, R y Julia. Comparado con scripts de código tradicionales, los Notebooks ofrecen un entorno más visual y accesible para comunicar hallazgos y experimentos de manera efectiva.

Notebooks vs. Scripts

  • Ambos son útiles.
  • Organización.
  • Experimentación y prototipado.
  • Objetivo.

¿Qué es Google Colab?

  • Servicio en la nube.
  • Basado en Jupyter Notebooks.
  • No requiere configuración.
  • Trabajo a nivel de archivo.
  • Uso gratuito de GPUs y TPUs.

Trabajo con Colab

Fichero notebook que nos ayuda al trabajo con los notebook, funciona tanto para online como local.

¿Qué es Deepnote?

  • Servicio en la nube.
  • Basado en Jupyter Notebooks.
  • No requiere configuración.
  • Trabajo a nivel de proyecto.
  • Colaboración en tiempo real.
  • Integración con múltiples Apps.
  • Acceso a una terminal o línea de comandos.
  • Almacenamiento de variables de entorno.
  • Publicar proyectos (construir portafolio).

Herramienta Local

VSCode

En la clase se abordaron los siguientes conceptos clave:

  • Editores de código vs CIDEs: se definen como generalistas (editores) y especialistas (CIDEs), destacando las características y ventajas de cada uno.
  • Visual Studio Code (VSCode): editor de código popular, con características como autocompletado, resaltado de sintaxis y la posibilidad de ampliarlo con extensiones.
  • Instalación de VSCode: Descargar e instalar VSCode en diferentes sistemas operativos, facilitando el trabajo local para proyectos de ciencia de datos.
  • Exploración y personalización: experimentar con el editor, cambiando temas y configuraciones para adaptarlo a sus necesidades.

En este blogpost se explica como instal WSL en Windows.

Agregar extensiones para VSCode

VSCode y WSL

Una vez instalado WSL y las bibliotecas de Python necesarias. Debemos instalar la extensión WSL en VSCode. De esta forma podemos abrir con VSCode cualquier proyecto de Python en WSL.

Principales extensiones

Uso de VSCode notebooks

  • Creación de Notebooks: Cómo abrir una carpeta y crear archivos .ipynb en VSCode.
  • Intérprete de Python: Selección del intérprete adecuado para ejecutar código.
  • Alternativas a Jupyter: alternativa a Google Colab y DeepNote.
  • Ejecución de Código y Markdown: ejecutar celdas y usar celdas de texto.

Estos aspectos facilitan el trabajo en ciencia de datos dentro de un entorno integrado.

Ambientes virtuales

Los ambientes virtuales son entornos aislados en los que puedes instalar paquetes y dependencias específicas para cada proyecto, evitando así conflictos entre ellos. Por ejemplo, puedes trabajar en un proyecto que requiera Python 2.7 y otro que necesite Python 3.9 sin que se afecten mutuamente. Esto se logra creando “mini computadoras” virtuales dentro de tu computadora. Utilizando herramientas como Anaconda, puedes gestionar estos ambientes de forma eficiente, asegurando que cada proyecto funcione con sus propias configuraciones y librerías.

Conda

Conda es una herramienta diseñada para la gestión de paquetes, dependencias y ambientes virtuales para múltiples lenguajes de programación como Python y R. Permite crear entornos aislados para mantener proyectos organizados y evitar conflictos entre librerías. Existen dos versiones para instalar: MiniConda (una versión mínima) y Anaconda (que incluye más herramientas útiles para ciencia de datos). Conda es multiplataforma, lo que significa que funciona en Windows, macOS y Linux sin inconvenientes.

Nota: Nunca cambies el PATH de instalación de anaconda.

Siempre, pero siempre; aceptar la propuesta de iniciar Anaconda con el comando conda init.

Conda: crear y actualizar ambientes

El uso de Conda para gestionar ambientes virtuales. Se pueden listar ambientes con conda env list, crear uno nuevo con conda create -n <nombre> python=<versión>, y activar/desactivar con conda activate <nombre> y conda deactivate. También se puede verificar paquetes instalados con conda list y actualizarlos con conda update <paquete>. Para instalar una versión específica, se usa conda install <paquete>=<versión>. Además, se pueden clonar ambientes y a eliminar paquetes, preparando un entorno de trabajo eficiente para Ciencia de Datos.

Comandos

  • conda env list: Lista todos los ambientes virtuales instalados.
  • conda create -n <nombre> python=<version>: Crea un nuevo ambiente virtual con la versión de Python especificada.
  • conda activate <nombre>: Activa el ambiente virtual.
  • conda deactivate: Desactiva el ambiente virtual.
  • conda list: Muestra los paquetes instalados en el ambiente activo.
  • conda update <paquete>: Actualiza un paquete a su última versión.
  • conda install <paquete>=<version>: Instala una versión específica de un paquete.
  • conda update python: Actualiza la versión de Python en el ambiente.
  • conda create -n <nuevo_nombre> --clone <nombre_existente>: Clona un ambiente existente con un nuevo nombre.
  • conda remove nombre_librería: eliminar librería (ejemplo: conda remove pandas)
  • conda env remove --name nombre_ambiente: eliminar ambiente (ejemplo: conda env remove --name pi39)
  • conda install --revision <número_revisión>: regresar a una revisión anterior.
  • conda env export > environment.yml: exportar ambiente.
  • conda env create -f environment.yml: crear ambiente desde archivo.
  • conda install -c <canal> <nombre_del_paquete>: instalar desde un canal específico. (ejemplo: conda install -c conda-forge boltons)

  • https://docs.conda.io/projects/conda/en/4.6.0/_downloads/52a95608c49671267e40c689e0bc00ca/conda-cheatsheet.pdf

Acelarando la creación de ambientes con Mamba

Mamba es una reimplementación de Conda, diseñada para acelerar la creación de ambientes virtuales. Utiliza múltiples hilos para resolver dependencias en paralelo, lo que mejora significativamente la velocidad de instalación de paquetes.

Los comandos utilizados epara su uso son:

  • conda install mamba -c conda-forge (para instalar Mamba).
  • mamba env create -f Environment.yml (para crear ambientes).
  • mamba install [paquete] (para instalar paquetes en un ambiente).

Estas herramientas son muy útiles para optimizar tu flujo de trabajo en ciencia de datos.

Enlaces para trabajar con Conda

Snakemake

La estrategia “Divide y Vencerás” se aplica a la gestión de ambientes virtuales en proyectos de ciencia de datos. Es importante crear múltiples ambientes para mantener las dependencias de los proyectos separadas, evitando conflictos al actualizar paquetes. Esto se logra mediante el uso de un varios archivos yml y creando ambientes específicos para diferentes secciones del proyecto, como externos, modelos y comunicación.

Los comandos empleados pueden incluir:

Next

  • Escoger tu lugar y herramientas de trabajo es muy importante. Prueba, diviértete y escoge la que más te agrade.
  • Siempre utiliza ambientes virtuales. Te sentirás más tranquilo al momento de modificar tus proyectos.
  • Al utilizar todos los pasos en armonía lograrás unificar tu entorno de desarrollo.
  • Ahora podrás ampliar tus herramientas y continuar aprendiendo sin miedo alguno. Nunca pares de aprender.

Enlaces a principales recursos

Atención

Tutorial elaborado a partir del Curso de Entorno de Trabajo para Ciencia de Datos con Jupyter Notebooks y Anaconda de PLATZI.