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
Puede hallar permisos más allá de los concedidos con esta licencia en
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,
– 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
– 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
– 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
– Shaw, Z. A. (2016). Learn Python 3 the Hard Way.
Recuperado de
– Van Rossum, G. and the Python development team. (2020). Documentación de Python en español.
Recuperado de
– 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
# 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:
## 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
– XGBoost, LightGBM, y CatBoost
– Aprendizaje profundo (DL)
– TensorFlow
– PyTorch
– Keras < https://keras.io/>.
– La más reciente JAX
– Transformers (Hugging Face)
– LLMs y GenAI
– Conectan LLMs a fuentes de datos (PDFs, BBDD relacionales, etc.) y construyen agentes de IA.
– LangChain
– LlamaIndex
– Canalizaciones y automación
– MLflow
– Kedro
– Prefect
– Airflow
## 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:
– 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
## 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:
–
## 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:
– 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:
– Tutorial básico:
## 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.
– Fuente:
– Guías de uso:
## 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:
– 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.
– Fuente:
## 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:
– 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.
– Fuente:
– 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:
– *Cheat sheet*:
Puedes [clicar aquí para realizar el tutorial utilizando python, pysparl y Spark MLLib](https://fortinux.com/tutoriales/tutorial-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


