Glosario
Definiciones en lenguaje sencillo de los conceptos clave para aprender a programar con datos.
Término destacado
Un JOIN en SQL combina filas de dos o más tablas a partir de una columna relacionada entre ellas, normalmente una clave. Permite reunir datos que viven en tablas separadas —por ejemplo clientes y sus pedidos— en un único resultado de la consulta.
SELECT c.nombre, p.total FROM pedidos p JOIN clientes c ON c.id = p.cliente_id;
Un entorno virtual es una instalación aislada de Python con su propio conjunto de paquetes, independiente de la instalación global del sistema. Permite que distintos proyectos usen versiones diferentes de una misma librería sin que entren en conflicto entre sí.
Una list comprehension es una sintaxis compacta de Python para construir una lista nueva aplicando una expresión a cada elemento de un iterable, con un filtro condicional opcional. Reemplaza el patrón de crear una lista vacía y usar un bucle for para llenarla con append.
El manejo de excepciones es el mecanismo de Python (try/except) para reaccionar a errores en tiempo de ejecución sin que el programa se detenga abruptamente. El código riesgoso se envuelve en un bloque try, y el bloque except captura y responde al tipo de error que ocurra.
La programación orientada a objetos (POO) es un estilo de programación que organiza el código en clases — plantillas que combinan datos (atributos) y comportamiento (métodos) — y objetos, que son instancias concretas de esas clases. Python la soporta de forma nativa junto con otros estilos, como el funcional.
Una prueba unitaria (unit test) es una pieza de código que verifica automáticamente que una función o método pequeño se comporta como se espera, dado un conjunto de entradas conocidas. Se ejecuta de forma repetible y aislada, sin depender de una base de datos real ni de servicios externos.
Un type hint es una anotación opcional en Python que indica el tipo de dato esperado de una variable, parámetro o valor de retorno, por ejemplo def suma(a: int, b: int) -> int. Python no los obliga en tiempo de ejecución, pero herramientas como mypy o el editor los usan para detectar errores antes de correr el código.
Un array de NumPy (ndarray) es una estructura de datos que almacena elementos del mismo tipo en una cuadrícula de una o más dimensiones, optimizada para operaciones matemáticas vectorizadas. Es la base sobre la que están construidas pandas y la mayoría de las librerías científicas de Python.
CSV (valores separados por comas) es un formato de archivo de texto plano para almacenar datos tabulares, donde cada línea es una fila y las columnas se separan por un carácter delimitador, normalmente una coma. Es uno de los formatos más comunes para intercambiar datos entre hojas de cálculo, bases de datos y scripts de análisis.
Un DataFrame es una estructura de datos bidimensional, parecida a una tabla o a una hoja de cálculo, con filas etiquetadas y columnas con nombre que pueden contener distintos tipos de datos. Es la pieza central de la librería pandas de Python y la forma habitual de cargar, limpiar y analizar datos tabulares.
Una clave foránea (foreign key) es una columna en una tabla que apunta a la clave primaria de otra tabla, estableciendo una relación entre ambas. Es el mecanismo con el que las bases de datos relacionales conectan, por ejemplo, cada pedido con el cliente que lo hizo.
Una clave primaria (primary key) es una columna, o combinación de columnas, que identifica de forma única a cada fila de una tabla de base de datos. No puede repetirse ni quedar vacía (NULL), y suele generarse automáticamente como un número entero o un UUID.
Una CTE (Common Table Expression, o expresión de tabla común) es un resultado temporal con nombre que se define con WITH al principio de una consulta SQL y se puede referenciar como si fuera una tabla dentro de esa misma consulta. Sirve para dividir consultas complejas en pasos legibles.
Una función de ventana (window function) en SQL calcula un valor sobre un conjunto de filas relacionadas — su "ventana" — sin colapsarlas en una sola fila como haría GROUP BY. Permite, por ejemplo, calcular un ranking o un promedio móvil manteniendo cada fila original visible en el resultado.
GROUP BY es una cláusula de SQL (y un método equivalente en pandas) que agrupa filas que comparten el mismo valor en una o más columnas, para luego aplicarles una función de agregación como COUNT, SUM o AVG a cada grupo por separado. Es la base de casi cualquier reporte resumido.
Un JOIN en SQL combina filas de dos o más tablas a partir de una columna relacionada entre ellas, normalmente una clave. Permite reunir datos que viven en tablas separadas —por ejemplo clientes y sus pedidos— en un único resultado de la consulta.
El descenso de gradiente (gradient descent) es un algoritmo de optimización que ajusta iterativamente los parámetros de un modelo en la dirección que más reduce su error, calculada a partir del gradiente (la pendiente) de una función de pérdida. Es el motor detrás del entrenamiento de la mayoría de los modelos de machine learning y redes neuronales.
Un hiperparámetro es una configuración de un modelo de machine learning que se fija ANTES de entrenarlo — como la tasa de aprendizaje o la profundidad máxima de un árbol de decisión — a diferencia de los parámetros del modelo (por ejemplo los pesos de una red neuronal), que se aprenden automáticamente durante el entrenamiento.
La ingeniería de características (feature engineering) es el proceso de crear, transformar o seleccionar las variables de entrada (características o features) que un modelo de machine learning usará para aprender, con el objetivo de que capturen mejor el patrón que se quiere predecir. A menudo tiene más impacto en la calidad del modelo final que el algoritmo elegido.
La ingeniería de prompts (prompt engineering) es la práctica de diseñar y ajustar las instrucciones que se le dan a un modelo de lenguaje para obtener respuestas más precisas, útiles o con el formato deseado, sin modificar el modelo en sí. Incluye técnicas como dar ejemplos, pedir un razonamiento paso a paso o fijar un rol específico.
Un modelo de lenguaje grande (Large Language Model, LLM) es una red neuronal entrenada con enormes cantidades de texto para predecir la siguiente palabra (o token) en una secuencia, y que como resultado adquiere la capacidad de generar texto coherente, responder preguntas, traducir y seguir instrucciones. GPT y Llama son ejemplos conocidos.
El overfitting, o sobreajuste, ocurre cuando un modelo aprende los datos de entrenamiento tan al detalle — incluyendo su ruido y sus particularidades— que pierde capacidad de generalizar a datos nuevos que no ha visto. Se detecta cuando el modelo rinde muy bien en entrenamiento pero mucho peor en datos de prueba.
La regresión lineal es un modelo estadístico que describe la relación entre una variable numérica que se quiere predecir (la variable dependiente) y una o más variables explicativas, asumiendo que esa relación es una línea recta. Es uno de los modelos más simples e interpretables tanto en estadística como en machine learning.
ETL (Extraer, Transformar, Cargar) es el proceso de mover datos desde sus fuentes hacia un destino analítico, limpiándolos y dándoles forma por el camino. Es la base de casi todo pipeline de datos: primero se extraen los datos crudos, luego se transforman (se limpian, combinan, agregan) y finalmente se cargan en un almacén donde pueden analizarse.
La limpieza de datos (data cleaning) es el proceso de detectar y corregir valores faltantes, duplicados, mal formateados o inconsistentes en un conjunto de datos antes de analizarlo. Suele consumir la mayor parte del tiempo de un proyecto de análisis de datos real.
La visualización de datos es la representación gráfica de información — mediante gráficos de barras, líneas, dispersión, mapas de calor y similares — para hacer patrones, tendencias y anomalías más fáciles de detectar que en una tabla de números. Es tanto una herramienta de exploración personal como un medio de comunicación hacia otras personas.
Una API REST es una interfaz que permite que dos programas se comuniquen por HTTP usando URLs para identificar recursos y verbos como GET, POST, PUT y DELETE para operar sobre ellos. Es el estilo más común para exponer datos y funcionalidad en la web, y suele intercambiar información en formato JSON.
Un contenedor Docker es un paquete ligero y ejecutable que incluye una aplicación junto con todas sus dependencias — librerías, variables de entorno, configuración — de forma que corre igual en cualquier máquina que tenga Docker instalado. Resuelve el clásico problema de "en mi máquina funciona".