Python Data Science Program

Parte 0 — Prerrequisitos: Python + NumPy + pandas + visualización + SQL + APIs

49 clases · ~11–13 semanas a ritmo moderado · ✅ Contenido completo**

Fuentes (por bloque):

Cada clase tiene su README.md con objetivo, resultados de aprendizaje verificables, dataset recomendado, 5 ejercicios y homework con criterio de aceptación. Cada notebook.ipynb trae 10–18 celdas mezclando markdown explicativo + código ejecutable (basado en VanderPlas/Ramalho donde aplica).

✨ Ampliación pedagógica (v2.2.0): todas las 49 clases incluyen además tres secciones nuevas:


🎯 ¿De qué trata esta parte?

Esta parte construye toda la base técnica que el resto del programa da por sentada. No es "introducción a Python" — es el conjunto mínimo de herramientas con las que un data scientist trabaja a diario: el lenguaje, los entornos reproducibles, el control de versiones, el stack numérico (NumPy / pandas), la visualización (matplotlib / seaborn / plotly), el acceso a datos (SQL, NoSQL, APIs, scraping) y la disciplina de proyecto (logging, type hints, manejo de errores, estructura cookiecutter).

El recorrido es deliberadamente extenso porque cada laguna acá se convierte en deuda invisible que aparece después en Parte 1 (ML clásico) y Parte 2 (Deep Learning). Quien complete bien esta parte puede leer cualquier notebook profesional, reproducirlo, modificarlo y debuggearlo.

🧩 Problemas que resuelve

🎓 Resultados de aprendizaje

Al finalizar esta parte, el estudiante podrá:

🗺️ Estructura temática

📥 Material descargable — parte completa

Materiales consolidados con TODAS las clases de esta parte (útiles para revisar offline o imprimir el bloque entero):



📚 Ficha por clase

49 de 49 clases tienen contenido pedagógico ampliado (📖 Definiciones · ⚠️ Errores comunes · FAQ).

001 Instalación de Python 3.12+ y entornos virtuales (venv, uv, conda)📖⚠️002 Jupyter y JupyterLab — kernels, magics, debugging, profiling📖⚠️003 Git y GitHub para data scientists📖⚠️004 Estructura reproducible de proyecto (cookiecutter-data-science)📖⚠️005 VS Code / Cursor para Python y Jupyter📖⚠️006 Python: tipos, estructuras, control de flujo📖⚠️007 Comprehensions y generadores📖⚠️008 Funciones: args, kwargs, lambdas, closures📖⚠️009 Manejo de excepciones y context managers📖⚠️010 OOP básico, dataclasses, herencia📖⚠️011 pathlib, lectura y escritura de archivos📖⚠️012 Logging📖⚠️013 Type hints y mypy📖⚠️014 NumPy: tipos, creación, atributos📖⚠️015 NumPy: ufuncs y vectorización📖⚠️016 NumPy: agregaciones📖⚠️017 NumPy: broadcasting📖⚠️018 NumPy: boolean masks y fancy indexing📖⚠️019 NumPy: ordenamiento y búsqueda📖⚠️020 NumPy: álgebra lineal con numpy.linalg📖⚠️021 NumPy: aleatoriedad y semillas📖⚠️022 Pandas: Series y DataFrame📖⚠️023 Pandas: indexación (loc, iloc, at, iat)📖⚠️024 Pandas: operaciones y alineación📖⚠️025 Pandas: datos faltantes📖⚠️026 Pandas: MultiIndex📖⚠️027 Pandas: concat, merge, join📖⚠️028 Pandas: groupby (split-apply-combine)📖⚠️029 Pandas: pivot tables y crosstab📖⚠️030 Pandas: operaciones vectorizadas sobre strings📖⚠️031 Pandas: series de tiempo, resampling, rolling📖⚠️032 Pandas: eval y query📖⚠️033 Polars: DataFrames modernos📖⚠️034 Parquet, Arrow, PyArrow, DuckDB📖⚠️035 Matplotlib: anatomía figura/axes📖⚠️036 Matplotlib: line, scatter, bar, histogram, boxplot📖⚠️037 Matplotlib: subplots y gridspec📖⚠️038 Matplotlib: legends, colorbars, ticks, anotaciones📖⚠️039 Matplotlib: stylesheets📖⚠️040 Matplotlib: 3D plotting📖⚠️041 Seaborn: distribuciones, relaciones, categóricas, facetas📖⚠️042 Visualización geográfica (Plotly / folium)📖⚠️043 SQL fundamental: SELECT, WHERE, JOIN, GROUP BY, HAVING📖⚠️044 SQL avanzado: CTEs, window functions, subqueries correlacionadas📖⚠️045 SQL desde Python: sqlite3, SQLAlchemy, DuckDB📖⚠️046 NoSQL: MongoDB con pymongo📖⚠️047 APIs REST con requests📖⚠️048 Web scraping con BeautifulSoup📖⚠️049 async / httpx / aiohttp para data scientists📖⚠️