Estos apuntes forman parte del curso básico de Python. Apuntes intermedio por Marcelo Horacio Fortino. Versión 2.5.1. Junio 2026.
Esta obra está sujeta a la licencia Reconocimiento-CompartirIgual 4.0 Internacional de Creative Commons. Para ver una copia de esta licencia, visite http://creativecommons.org/licenses/by-sa/4.0/. Puede hallar permisos más allá de los concedidos con esta licencia en https://fortinux.com. Sugerencias y comentarios a info@fortinux.com.
Todas las marcas son propiedad de sus respectivos dueños. Python® y PyCon® son marcas registradas de la Python Software Foundation. Linux® es una marca registrada de Linus Torvalds. Ubuntu® es una marca registrada de Canonical Limited. Google® es una marca registrada de Google Inc. Microsoft® y Windows® son marcas registradas de Microsoft Corporation. Red Hat® es una marca comercial registradas de Red Hat, Inc. UNIX® es una marca comercial registrada de The Open Group. Apple® y Mac OS® son marcas comerciales de Apple Inc.
| Versión | Autor/es | Fecha | Observaciones |
|---|---|---|---|
| 1.0 | Marcelo Horacio Fortino | 2021/Marzo | Curso Python |
| 1.1 | Marcelo Horacio Fortino | 2021/Junio | Convertido a markdown – ipynb |
| 1.2 | Marcelo Horacio Fortino | 2021/Agosto | Actualizados contenidos |
| 1.3 | Marcelo Horacio Fortino | 2021/Octubre | Agregado Flask microframework |
| 1.4 | Marcelo Horacio Fortino | 2021/Noviembre | Agregado Pandas – datascience |
| 1.5 | Marcelo Horacio Fortino | 2021/Diciembre | Agregado Devops – Ansible |
| 2.0 | Marcelo Horacio Fortino | 2022/Abril | Nueva estructura: core / module |
| 2.1 | Marcelo Horacio Fortino | 2022/Junio | Módulo apuntes intermedio |
| 2.2 | Marcelo Horacio Fortino | 2022/Agosto | Actualizado temario y ejercicios |
| 2.3 | Marcelo Horacio Fortino | 2022/Octubre | Actualizado despliegue a render.com |
| 2.4 | Marcelo Horacio Fortino | 2023/Noviembre | Aplicaciones de escritorio con python |
| 2.5 | Marcelo Horacio Fortino | 2026/Abril | Aplicaciones de ML e IA para python |
Esta obra se distribuye con la esperanza de que sea útil, pero SIN NINGUNA GARANTÍA, incluso sin la garantía MERCANTIL implícita o sin garantizar la CONVENIENCIA PARA UN PROPÓSITO PARTICULAR. El autor no asume ninguna responsabilidad si el lector hace un mal uso de la misma.
- Estos apuntes se basan en:
- La documentación oficial de Python, https://docs.python.org/es/3/tutorial/index.html,
- La bibliografía presentada al final de este documento, y
- Documentación propia recogida a lo largo de los años de diversas fuentes.
Bibliografía
-
Downey, A., Elkner, J., Meyers, C. (2015). Aprenda a Pensar Como un Programador con Python.
Recuperado de https://argentinaenpython.com/quiero-aprender-python/aprenda-a-pensar-como-un-programador-con-python.pdf -
Kent D. Lee. (2014). Python, Programming Fundamentals Second Edition.
-
Marzal Varó, A., Gracia Luengo, I., García Sevilla, Pedro. (2014). Introducción a la programación con Python 3.
Recuperado de http://repositori.uji.es/xmlui/handle/10234/102653 -
Miller, B., Ranum, D. Solución de problemas con algoritmos y estructuras de datos usando Python. Traducido por Mauricio Orozco-Alzate, Universidad Nacional de Colombia – Sede Manizales.
Recuperado de https://runestone.academy/ns/books/published/pythoned/index.html?mode=browsing -
Shaw, Z. A. (2016). Learn Python 3 the Hard Way.
Recuperado de https://learnpythonthehardway.org/ -
Van Rossum, G. and the Python development team. (2020). Documentación de Python en español.
Recuperado de https://python-docs-es.readthedocs.io/_/downloads/es/pdf/pdf/ -
McGregor, S. E. (2022). Practical Python data wrangling and data quality. O’Reilly Media.
-
Chollet, F. (2017). Deep learning with Python. Manning Publications.
-
Russell, S., & Norvig, P. (2019). Artificial intelligence: A modern approach. Pearson Higher Education.
-
D2L.ai: Interactive Deep Learning Book with Multi-Framework Code, Math, and Discussions.
Recuperado de https://d2l.ai/
Aprendizaje automático – ML
-
Si bien se viene estudiando la forma de hacer que las máquinas puedan aprender por si solas desde 1970 aproximadamente, no fue hasta 1983 con la publicación del libro Machine learning: The AI Approach (Ryszard S. Michalski, Tom M. Mitchell, Jaime Carbonell) que la disciplina de aprendizaje automático (Machine Learning – ML) tomó impulso.
-
Ésta fue luego sistematizada en otro libro seminal escrito por T. Mitchell: Machine Learning (1997).
-
El aprendizaje automático (Machine Learning – ML) incluye varias técnicas que le permiten a los algoritmos aprender patrones de datos y luego hacer predicciones probabilísticas para su posterior análisis y toma de decisiones.
-
Incluye el aprendizaje supervisado (supervised learning), donde los modelos se entrenan en datos etiquetados; aprendizaje no supervisado (unsupervised learning), donde los patrones se reconocen mediante datos no etiquetados; y aprendizaje de refuerzo (reinforcement learning), en el cual los modelos aprenden a tomar decisiones basados en recompensas o castigos.
-
Fuente: KUBAT, Miroslav. (2017). An Introduction to Machine Learning. Second Edition Switzerland: Springer.
-
Para una introducción básica a ML: https://www.databricks.com/blog/machine-learning.
Bibliotecas de python para ML
-
Entre las herramientas má populares de python para aprendizaje automático (ML), aprendizaje profundo (DL), LLM / GenAI, y canalizaciones / automoción se encuentran:
-
Aprendizaje automático (ML)
- Scikit-learn https://scikit-learn.org/stable/, construída sobre NumPy, SciPy, y matplotlib.
- XGBoost, LightGBM, y CatBoost https://pythondatabench.com/article/gradient-boosting-python-xgboost-lightgbm-catboost-2026.
-
Aprendizaje profundo (DL)
- TensorFlow https://www.tensorflow.org/about.
- PyTorch https://pytorch.org/.
- Keras < https://keras.io/>.
- La más reciente JAX https://github.com/jax-ml/jax.
- Transformers (Hugging Face) https://huggingface.co/docs/transformers/index es el estándar de facto para modelos de aprendizaje profundo preentrenados.
-
LLMs y GenAI
- Conectan LLMs a fuentes de datos (PDFs, BBDD relacionales, etc.) y construyen agentes de IA.
- LangChain https://www.langchain.com/.
- LlamaIndex https://www.llamaindex.ai/.
-
Canalizaciones y automación
- MLflow https://mlflow.org/.
- Kedro https://kedro.org/.
- Prefect https://www.prefect.io/.
- Airflow https://airflow.apache.org/.
TensorFlow
-
El aprendizaje automático es la práctica de ayudar al software a realizar una tarea sin programación o reglas explícitas.
-
En la programación tradicional de computadoras, un programador especifica las reglas que debe usar la computadora.
-
Sin embargo, ML requiere una mentalidad diferente:
- El aprendizaje automático del mundo real se centra mucho más en el análisis de datos que en la codificación.
- Los programadores proporcionan un conjunto de ejemplos y la computadora aprende patrones a partir de los datos.
- Se puede entender el aprendizaje automático como «programación con datos».
-
Extraído de TensorFlow: https://www.tensorflow.org/about.
-
Los tensores son matrices multidimensionales con un tipo uniforme denominado (dtype), en NumPy los tensores son similares a las matrices (np.arrays).
-
Todos los tensores son inmutables como los números y las cadenas de Python. Nunca se puede actualizar el contenido de un tensor, solo se puede crear uno nuevo.
- Extraído de https://www.tensorflow.org/guide/tensor?hl=es.
Pasos en ML
-
Paso 1: recopilar datos.
-
Paso 2: Explorar los datos.
-
Paso 2.5: Eligir un modelo.
-
Paso 3: Preparar los datos.
-
Paso 4: construir, entrenar y evaluar el modelo.
-
Paso 5: Sintonizar los hiperparámetros.
-
Paso 6: Implementar el modelo.
-
Extraído de Maching Learning:
-
https://developers.google.com/machine-learning/guides/text-classification/.
Redes neuronales
-
Es un tipo de modelo que se puede entrenar para reconocer patrones.
-
Está compuesto por capas, incluidas las de entrada y salida, y al menos una capa oculta.
-
Las neuronas de cada capa aprenden representaciones cada vez más abstractas de los datos.
-
Extraído de TensorFlow: https://www.tensorflow.org/about.
-
Se suelen dividir en dos tipos: las redes neuronales convolucionales (Convolutional Neural Networks – CNN), se utilizan para analizar imágenes, mientras que las redes neuronales recurrentes (Recurrent Neural Networks – RNN) se utilizan para datos de secuencias.
Entrenar una red neuronal
- Las redes neuronales se entrenan por descenso de gradiente.
- Los pesos en cada capa comienzan con valores aleatorios, y estos se mejoran iterativamente con el tiempo para hacer que la red sea más precisa.
- Se usa una función de pérdida para cuantificar qué tan imprecisa es la red, y se usa un procedimiento llamado retropropagación para determinar si se debe aumentar o disminuir cada peso para reducir la pérdida.
PyTorch
-
PyTorch fue originalmente desarrollada por Meta y actuelmente se gestiona mediante la PyTorch Foundation, una comunidad de desarrolladores, investigadores y pioneros de la industria de IA que colaboran para llevar adelante los proyectos de la misma.
-
Fundación PyTorch: https://pytorch.org/.
-
PyTorch es un paquete de Python que provee dos funcionalidades de alto nivel:
- Un tensor computatacional (similar a NumPy) con una fuerte aceleración para las GPUs.
- Redes neuronales profundas construidas sobre un sistema de autograd (tape-based autograd system) basado en cinta.
-
Se pueden reutilizar también, de ser necesario, los paquetes de python tipo NumPy, SciPy y Cython para extender PyTorch.
-
Fuente: https://github.com/pytorch/pytorch.
-
Tutorial básico: https://docs.pytorch.org/tutorials/beginner/basics/quickstart_tutorial.html.
Keras
-
Keras 3 es una API multi-framework de aprendizaje profundo.
-
Puede se usada para desarrollar componentes modulares compatibles con otros marcos tipo JAX, TensorFlow, o PyTorch.
-
Es simple, flexible y poderosa, siendo utilizada en organizaciones tipo la NASA o Alphabet.
-
Guías de uso: https://keras.io/guides/.
JAX
-
Jax es una biblioteca de Python diseñada para realizar investigación de alto desempeño en aprendizaje automático.
-
Es una biblioteca computacional numérica similar a Numpy pero con algunas mejoras claves.
-
Ha sido desarrollada internamente en Google, donde es utilizada por los equipos de Deepmind.
-
Fuentes: https://github.com/jax-ml/jax, https://docs.jax.dev/en/latest/.
-
El Stack de JAX AI es una colección de blibliotecas seleccionadas por investigadores e ingenieros de Google y otras organizaciones, útiles para implementar y desplegar modelos de las herramientas de IA generativa (GenAI) tipo Imagen o Gemini, entre otras.
Apache Spark MLlib
-
MLlib es la biblioteca escalable de aprendizaje automático (ML) de Apache Spark.
-
Su objetivo es hacer que el aprendizaje automático práctico sea escalable y fácil.
- Fuente: https://spark.apache.org/mllib/.
-
Las utilidades de flujo de trabajo de ML incluyen:
- Algoritmos de ML: algoritmos de aprendizaje comunes como clasificación, regresión, agrupamiento y filtrado colaborativo.
- Caracterización: extracción de características, transformación, reducción de dimensionalidad y selección.
-
Canalizaciones:
- Incluye herramientas para construir, evaluar y ajustar canalizaciones de ML.
-
Persistencia:
- Guarda y carga algoritmos, modelos y canalizaciones.
-
Utilidades:
- Disponibles para álgebra lineal, estadística, manejo de datos, etc.
PySpark
-
PySpark es la API de Python para Apache Spark utilizada para procesar datos a gran escala y en tiempo real en un entorno distribuido.
-
Proporciona además una consola PySpark para analizar los datos de forma interactiva, combinando la facilidad de aprendizaje y uso de Python con la potencia de Apache Spark.
-
Es compatible con todas las características de Spark, como Spark SQL, DataFrames, Structured Streaming, Machine Learning (MLlib), Pipelines y Spark Core.
-
Fuente: https://spark.apache.org/docs/latest/api/python/index.html.
-
Cheat sheet: https://www.sparkplayground.com/pyspark-cheat-sheet.
Puedes clicar aquí para realizar el tutorial utilizando python, pysparl y Spark MLLib.
Si buscas un formador para realizar este curso u otra actividad formativa (webinar, workshops, bootcamps, etc.) en tu organización, me puedes ubicar a través de la página de contacto. Muchas gracias.
Si te ha gustado el artículo puedes ayudarme haciendo una donación con criptomonedas. Gracias!!!
Image by Ilona Frey from Pixabay


