Curso gratuito · 13 notebooks prácticos · funciona en cualquier portátil
Python 1001
De las estructuras de datos al despliegue de servicios, las extensiones compiladas y la ciencia de nivel investigador. Tres módulos, Inicial, Intermedio y Avanzado, cada uno con notebooks y resultados reales ya ejecutados que puedes leer aquí o ejecutar tú.
- 13notebooks
- ~17 hde estudio
- 3niveles
- 100%código ejecutable
Medido, no prometido
Cada comparación del curso se ejecuta: formatos de archivo cronometrados, picos de memoria medidos por proceso, aceleraciones medidas, modelos evaluados con datos reservados. Cuando una técnica no ayuda, el notebook lo dice.
Del script a producción
Entornos, archivos de bloqueo, Docker, pruebas, registro, empaquetado y publicación: las prácticas que convierten el código que funciona en tu máquina en software que otras personas pueden usar.
Python en la frontera
El módulo Avanzado usa las bibliotecas en las que confían los investigadores, en biología, medicina, física, espacio, economía, IA y previsión, y termina con un reto de Kaggle completo.
Temario
Tres módulos, 13 notebooks. Lee las explicaciones, ejecuta las celdas y prueba los ejercicios al final de cada notebook. Tu progreso se guarda en este navegador.
Inicial
Estructuras de datos, formatos, datos mayores que la memoria, entornos, contenedores y editores.
Estructuras de datos en Python
Listas, tuplas, diccionarios y conjuntos, el módulo collections, funciones, un primer vistazo a las clases, comprensiones, generadores y excepciones, y por qué importa la estructura elegida, medido.
- list, tuple, dict, set
- collections
- funciones
- generadores
- excepciones
- Big-O
Formatos de datos y pandas
El DataFrame de pandas y después CSV, JSON, Excel, Parquet, Feather, SQLite, YAML, TOML y pickle comparados con los mismos datos: tamaño, velocidad y qué tipos sobreviven.
- pandas
- CSV y JSON
- Parquet
- SQLite
- YAML y TOML
- seguridad de pickle
Grandes volúmenes de datos con poca RAM
Mide la memoria con honestidad, reduce DataFrames con los tipos adecuados, procesa por bloques, lee de Parquet solo lo necesario, compara pandas con Polars, DuckDB y PyArrow, y escala con PySpark.
- perfilado de memoria
- categorías
- por bloques
- Polars y DuckDB
- PyArrow
- PySpark
Entornos, paquetes, contenedores y editores
Entornos aislados, pip, uv, pipx, conda, apt y snap, archivos de bloqueo, Docker para desplegar y los editores que usan los profesionales: VS Code, PyCharm, Eclipse, Vim.
- venv
- pip y uv
- conda
- archivos de bloqueo
- Docker
- IDE
Intermedio
Programación orientada a objetos y pythónica, pruebas, concurrencia, y construir, publicar y mantener bibliotecas.
Python orientado a objetos
Los cuatro pilares, el modelo de datos y los métodos especiales, propiedades, dataclasses, clases base abstractas y protocolos, composición, el MRO y __slots__.
- clases
- métodos dunder
- propiedades
- dataclasses
- Protocol
- composición
Técnicas pythónicas
Iteradores, decoradores, gestores de contexto, herramientas funcionales, anotaciones de tipo, logging, pruebas con pytest, e hilos frente a procesos frente a asyncio, medido.
- generadores
- decoradores
- gestores de contexto
- tipado
- pytest
- concurrencia
Bibliotecas: acelerar, empaquetar, publicar, contribuir
Acelera bucles críticos con NumPy, Numba, Cython y C, construye un wheel a partir de pyproject.toml, publica con trusted publishing, versiona sin romper a los usuarios y contribuye a otros proyectos.
- Numba
- Cython
- extensiones en C
- pyproject.toml
- PyPI
- SemVer y obsolescencia
Avanzado
Python en la frontera: biología, medicina, física, espacio, economía, frameworks de IA, previsión de series temporales y un proyecto final de Kaggle.
Ciencias de la vida: biología y medicina
Secuencias, evolución simulada y un árbol genealógico reconstruido con Biopython, análisis de supervivencia de un ensayo de cáncer de mama con lifelines y un modelo de diagnóstico ajustado a la sensibilidad.
- Biopython
- alineamiento
- filogenia
- Kaplan-Meier
- regresión de Cox
- ROC
Física e investigación espacial
Deduce un péndulo con SymPy, simúlalo con SciPy, encuentra su frecuencia con una FFT, verifica la tercera ley de Kepler con Astropy e integra una órbita comprobada con leyes de conservación.
- SymPy
- EDO con SciPy
- FFT
- unidades con Astropy
- Kepler
- órbitas
Economía y econometría
Cincuenta años de datos de EE. UU. con statsmodels: la ley de Okun con errores estándar robustos, su estabilidad por décadas y una previsión ARIMA contrastada frente a referencias ingenuas.
- statsmodels
- MCO y HAC
- ley de Okun
- ARIMA
- backtesting
Frameworks de IA: PyTorch y TensorFlow
La misma red convolucional en PyTorch y en TensorFlow/Keras: tensores, diferenciación automática, bucles de entrenamiento, guardar y exportar, y cómo elegir.
- PyTorch
- TensorFlow
- Keras
- autograd
- CNN
- ONNX
Previsión de series temporales
Ingenuo estacional, SARIMA, Prophet, XGBoost, una GRU en PyTorch, una LSTM en Keras y un Transformer en dos problemas: demanda de bicicletas, donde gana el gradient boosting, y caudal de un río, donde ganan las redes neuronales, y por qué.
- ingenuo estacional
- SARIMA
- Prophet
- XGBoost
- GRU y LSTM
- Transformer
Proyecto final: resolver un reto de Kaggle
El reto House Prices de Kaggle de principio a fin: licencias, la métrica RMSE logarítmica, exploración, ingeniería de variables en un Pipeline, validación cruzada, mezcla de modelos y un archivo de envío.
- Kaggle
- licencias de datos
- ingeniería de variables
- Pipeline
- validación cruzada
- mezcla de modelos
Ejecútalo tú
Cada página de lección muestra el notebook con sus resultados guardados, así que todo el curso se puede leer en el navegador. Para experimentar, descarga un notebook o ábrelo en Google Colab desde la página de la lección, o clona el repositorio y ejecútalo todo en local (el notebook 04 explica cada paso):
git clone https://github.com/fborbon/academy.git
cd academy/python/es
python3 -m venv .venv && source .venv/bin/activate
pip install -r ../requirements.txt --extra-index-url https://download.pytorch.org/whl/cpu
jupyter lab
Qué necesitas
- Python: para el módulo Inicial basta con haber escrito alguna línea de código; cada módulo se apoya en el anterior.
- Matemáticas: nivel de secundaria. Los notebooks avanzados explican la ciencia que usan sobre la marcha.
- Equipo: cualquier portátil de la última década. Todos los notebooks se ejecutan en una CPU en minutos; dos notebooks descargan una vez un conjunto de datos pequeño. La sección de PySpark del notebook 03 necesita Java 17 o posterior.
Datos y créditos
- La mayoría de los datos se generan en los notebooks o vienen con las bibliotecas (scikit-learn, statsmodels, lifelines).
- Datos de Ames Housing: De Cock, D. (2011), Journal of Statistics Education 19(3), vía OpenML (pública).
- Ensayo de cáncer de mama GBSG2: Schumacher et al. (1994), Journal of Clinical Oncology, tal como lo distribuye lifelines.
- Datos macroeconómicos de EE. UU.: tal como los distribuye statsmodels (
macrodata). - Datos de Bike Sharing: Fanaee-T, H. y Gama, J. (2013), Progress in Artificial Intelligence, repositorio UCI (CC BY 4.0), vía OpenML.
- Elementos orbitales de los planetas: valores publicados estándar (fichas planetarias de la NASA).