Próxima Edición: 23 de Febrero | Lunes a Jueves | 12 Sesiones Online
Este repositorio contiene el material oficial del curso Py311, primer curso de la ruta de Ingeniería de Datos con Python. Cubre los fundamentos de computación numérica, manipulación y visualización de datos, y presenta las herramientas modernas de análisis y escalado que se usarán a lo largo de toda la ruta.
Este curso asume conocimiento previo de Python. Si necesitas construir esa base primero:
| Curso | Título | Repositorio |
|---|---|---|
| Py101 | Introducción a la Programación con Python | PythonistaMX/py101 |
| Py111 | Programación Orientada a Objetos con Python | PythonistaMX/py111 |
Py311 es el punto de entrada de una ruta progresiva de cinco cursos:
| Curso | Título | Estado |
|---|---|---|
| Py311 | Fundamentos de Python para Ingeniería y Analítica de Datos | ✅ Este curso |
| Py321 | Orquestación con Apache Airflow | Próximamente |
| Py331 | Pipelines batch y streaming con Apache Beam | Próximamente |
| Py341 | Ciclo de vida de los datos con Spark y PySpark | Próximamente |
| Py351 | Streams con Apache Kafka | Próximamente |
| Py361 | Conceptos y prácticas de ingeniería de datos | Próximamente |
Un programa intensivo orientado a construir la base técnica necesaria para trabajar como ingeniero o analista de datos en entornos modernos. Al completarlo serás capaz de:
- Dominar el ecosistema numérico: NumPy, SciPy y álgebra lineal aplicada a datos.
- Manipular datos con Pandas moderno: Tipos eficientes, limpieza, agregaciones y ventanas.
- Visualizar con precisión estadística: Matplotlib, Seaborn y Plotnine (gramática de gráficos).
- Optimizar memoria y rendimiento: PyArrow como backend y Polars para análisis de alto rendimiento.
- Construir productos de datos: Dashboards interactivos con Streamlit sin necesidad de desarrollo web.
- Escalar más allá de la memoria local: Procesamiento paralelo y distribuido con Dask.
Todo el entorno se ejecuta en la nube mediante GitHub Codespaces, sin necesidad de instalación local.
El curso consta de 12 sesiones de 2 horas (24 horas totales), divididas en 6 bloques estratégicos:
| Bloque | Temática Principal | Tecnologías Clave |
|---|---|---|
| I. Fundamentos | Computación numérica y álgebra lineal vectorial | NumPy, SciPy |
| II. Pandas Moderno | Backend PyArrow, manipulación y limpieza de datos | Pandas 2.0, PyArrow |
| III. Visualización | Gramática de gráficos, estadística y control fino | Matplotlib, Seaborn, Plotnine |
| IV. Herramientas Modernas | Formato Arrow, Polars y optimización de memoria | PyArrow, Polars |
| V. Data Apps | Dashboards interactivos sin desarrollo web | Streamlit |
| VI. Escalado | Procesamiento paralelo y escalabilidad distribuida | Dask |
- Módulo 1: 01 02 03 04 05 06 07 08
- Módulo 2: 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
- Módulo 3: 25 26 27 28 29 30
- Módulo 4: 31 32 33
- Módulo 5: 34
- Módulo 6: 35
01- El proyecto SciPy y el ecosistema de datos.02- Conceptos básicos de NumPy (arreglos y vectores).03- Creación de arreglos con funciones especializadas y lectura/escritura de archivos.04- Generación de datos sintéticos y aleatorios.05- Indexado, rebanado, modificación de arreglos y broadcasting.06- Manipulación y transformación de arreglos.07- Análisis numérico y estadístico básico.08- Álgebra lineal aplicada a datos.
09- Introducción a Pandas.10- Tipos de datos de Pandas y funciones de conversión de tipos.11- Operaciones estructurales en DataFrames.12- Índices simples (pd.Index) y multiíndices (pd.MultiIndex).13- Datos categóricos y relaciones.14- Uniones y mezclas de DataFrames.15- El métodomerge(): uniones inner, outer, left y right.16- El métodofilter(): filtrado de columnas e índices por etiqueta.17- Transformaciones personalizadas (apply,transform).18- Técnicas de enmascaramiento avanzado.19- Gestión de calidad de datos.20- Estrategias de imputación y manejo de nulos.21- Transformación y limpieza de objetos.22- Agregaciones avanzadas:groupby,crosstab,pivot_tableywindow functions.23- Extracción y almacenamiento de datos.24- Visualización de datos con Pandas.
25- Introducción a Matplotlib (fundamentos).26- Elementos de un gráfico (títulos, ejes, leyendas, estilos).27- Tipos básicos de gráficos (scatter, line, bar, histogramas).28- Plotnine (gramática de gráficos para reportes reproducibles).29- Introducción a Seaborn (visualización estadística rápida).30- Objetos especializados en Seaborn (regresión, correlación, distribuciones).
📊 Nota: Plotnine (basado en ggplot2) es ideal para reportes reproducibles y migración desde R. Seaborn para exploración iterativa. Matplotlib para control fino de bajo nivel.
31- Introducción a PyArrow: arrays, tablas y backend para Pandas.32- Introducción a Polars: API expresiva y evaluación lazy.33- Polars Avanzado: window functions, optimización y decisiones arquitectónicas.
34- Introducción a Streamlit: dashboards web sin HTML/CSS/JavaScript.
35- Introducción a Dask: procesamiento paralelo y escalabilidad out-of-core.
¡Olvídate de configurar entornos locales! Este repositorio está configurado para GitHub Codespaces.
- Haz clic en el botón "Code" (verde) arriba a la derecha.
- Ve a la pestaña "Codespaces".
- Haz clic en "Create codespace on main".
El entorno se iniciará automáticamente con:
- Python 3.11
- JupyterLab
- Todas las librerías instaladas (Polars, Dask, Streamlit, etc.)
- Puertos configurados para visualizar tus apps.
Si prefieres trabajar en tu máquina:
# Clonar el repositorio
git clone https://github.com/tusuario/py311.git
cd py311
# Crear entorno virtual
python -m venv venv
source venv/bin/activate # En Windows: venv\Scripts\activate
# Instalar dependencias
pip install -r requirements.txt
# Iniciar Jupyter
jupyter lab- Documentación oficial de Pandas
- Documentación oficial de Polars
- Documentación oficial de Dask
- Documentación oficial de Streamlit
Este proyecto está bajo la licencia Creative Commons Atribución 4.0 Internacional (CC-BY 4.0).
Eres libre de:
- ✅ Compartir el material en cualquier medio o formato
- ✅ Adaptar, remezclar y crear contenido derivado
- ✅ Usar con fines comerciales
Con la condición de:
- 📌 Atribución: Debes dar crédito apropiado, proporcionar un enlace a la licencia e indicar si se han realizado cambios.
Para más información, visita: https://creativecommons.org/licenses/by/4.0/
Véase el archivo LICENSE para los términos completos.