# NumPy y Matplotlib: cálculo y gráficos en Python

URL canónica: https://missyera.com/blog/numpy-y-matplotlib-guia/
Última actualización: 2026-10-28
Autora: Gera Flores (Miss Yera)

> **Respuesta corta**
>
> Respuesta rápida: NumPy es la librería de cálculo numérico de Python y su estructura es el array, una tabla de números del mismo tipo con la que se pueden hacer operaciones matemáticas de golpe, sin escribir bucles. Es mucho más rápida que las listas normales y es la base sobre la que están construidas pandas y las librerías de machine learning.

## Resumen

- NumPy: por qué existe
- NumPy y pandas: cuál para qué
- Lo básico de NumPy
- Matplotlib: el gráfico en tres líneas
- Seaborn: menos código, mejor resultado

## NumPy: por qué existe

Python trae listas, y las listas son flexibles y lentas. Para cálculo numérico con miles o millones de valores, esa lentitud importa.

NumPy resuelve eso con el **array**: una estructura donde todos los elementos son del mismo tipo, guardados de forma contigua en memoria. Eso permite que las operaciones se hagan de golpe sobre toda la estructura, en código optimizado por debajo.

```
import numpy as np

precios = np.array([100, 250, 80, 400])
con_igv = precios * 1.18       # multiplica los cuatro de una vez
print(con_igv)
```

Si los bucles, las listas y los tipos de dato todavía no te resultan familiares, empieza por [la sintaxis de Python desde cero](https://missyera.com/blog/sintaxis-de-python-desde-cero/).

Fíjate en lo que no hay: **no hay bucle**. Con una lista normal tendrías que recorrer elemento por elemento. Eso se llama vectorización y es la idea central de NumPy.

Su importancia real es que **pandas está construido encima de NumPy**, igual que scikit-learn y prácticamente todo el ecosistema científico. Aunque no lo uses directamente todos los días, está debajo de todo lo que sí usas.

## NumPy y pandas: cuál para qué

|  | NumPy | Pandas |
|---|---|---|
| Estructura | Array de números | DataFrame con columnas nombradas |
| Tipos de dato | Todos iguales | Uno distinto por columna |
| Etiquetas | Solo posiciones | Nombres de fila y columna |
| Para qué | Cálculo matemático puro | Análisis de datos tabulares |

La regla simple: **si tus datos tienen columnas con nombre y tipos distintos, usa [pandas](https://missyera.com/blog/pandas-python-guia-para-analisis-de-datos/). Si son números puros y necesitas cálculo, usa NumPy.**

En la práctica trabajan juntos: haces el análisis en pandas y, cuando necesitas una operación matemática sobre una columna, por dentro se ejecuta NumPy sin que te enteres.

## Lo básico de NumPy

```
a = np.array([1, 2, 3, 4, 5])

a.mean()      # promedio
a.std()       # desviación estándar
a.sum()       # suma
a.max()       # máximo

matriz = np.array([[1, 2], [3, 4]])
matriz.shape        # (2, 2)
matriz.reshape(4, 1)   # cambia la forma sin cambiar los datos
```

Los arrays pueden tener varias dimensiones. Uno de una dimensión es una lista de números; uno de dos es una matriz; y de ahí para arriba. En machine learning se trabaja rutinariamente con arrays de tres o más dimensiones.

Una función que se usa mucho al preparar datos para modelos es `reshape`, que reorganiza la forma sin alterar los valores. Muchos errores de scikit-learn del tipo "esperaba una forma distinta" se resuelven con un reshape.

## Matplotlib: el gráfico en tres líneas

```
import matplotlib.pyplot as plt

plt.bar(["Lima", "Arequipa", "Cusco"], [1200, 800, 500])
plt.title("Ventas por ciudad")
plt.show()
```

Los cuatro tipos que cubren casi todo:

| Gráfico | Función | Para qué |
|---|---|---|
| Barras | plt.bar() | Comparar categorías |
| Líneas | plt.plot() | Evolución en el tiempo |
| Histograma | plt.hist() | Ver cómo se distribuye una variable |
| Dispersión | plt.scatter() | Ver si dos variables se relacionan |

Elegir mal el gráfico hace que un dato correcto comunique algo falso. La guía completa de cuándo usar cada uno está en el post de [estadística descriptiva](https://missyera.com/blog/estadistica-descriptiva-que-es/), y aplica igual sin importar la herramienta.

Para el flujo completo de análisis antes de graficar, la guía es [pandas para análisis de datos](https://missyera.com/blog/pandas-python-guia-para-analisis-de-datos/), y para ejecutarlo sin instalar nada, [Google Colab](https://missyera.com/blog/que-es-google-colab/).

Un atajo que ahorra tiempo: pandas puede graficar directamente sin pasar por Matplotlib explícitamente.

```
df.groupby("ciudad")["total"].sum().plot(kind="bar")
```

## Seaborn: menos código, mejor resultado

Seaborn está construida encima de Matplotlib y hace dos cosas: produce gráficos que se ven bien por defecto, y trae directamente los gráficos estadísticos que en Matplotlib habría que armar a mano.

```
import seaborn as sns

sns.boxplot(data=df, x="ciudad", y="total")
sns.heatmap(df.corr(), annot=True)
```

Esa segunda línea es la que más uso: dibuja un mapa de calor de la [matriz de correlación](https://missyera.com/blog/correlacion-que-es-y-como-se-interpreta/) entre todas las variables numéricas, con los valores escritos encima. Es lo primero que miro al explorar un conjunto de datos nuevo, y en Matplotlib puro tomaría bastante más trabajo.

La forma práctica de usarlas: **Seaborn para explorar rápido, Matplotlib cuando necesitas control fino** sobre cada detalle del gráfico final. Y como Seaborn devuelve objetos de Matplotlib, puedes empezar con una y afinar con la otra.

## Preguntas frecuentes

### ¿Qué es NumPy?

Es la librería de cálculo numérico de Python. Su estructura es el array, una tabla de números del mismo tipo sobre la que se pueden hacer operaciones matemáticas de golpe sin escribir bucles, lo que la hace mucho más rápida que las listas normales.

### ¿Cuál es la diferencia entre NumPy y pandas?

NumPy trabaja con arrays de números del mismo tipo y sirve para cálculo matemático. Pandas trabaja con DataFrames que tienen columnas nombradas y tipos distintos, y sirve para análisis de datos tabulares. Pandas está construido encima de NumPy.

### ¿Qué es un array en NumPy?

Es una estructura donde todos los elementos son del mismo tipo y están guardados de forma contigua en memoria. Puede tener una dimensión, como una lista de números, dos como una matriz, o más, que es lo habitual en machine learning.

### ¿Cómo hago un gráfico en Python?

Con Matplotlib: importas pyplot, llamas a la función del tipo de gráfico y usas show para mostrarlo. Las cuatro funciones que cubren casi todo son bar para barras, plot para líneas, hist para histogramas y scatter para dispersión.

### ¿Cuál es la diferencia entre Matplotlib y Seaborn?

Seaborn está construida encima de Matplotlib. Produce gráficos que se ven bien por defecto y trae directamente los gráficos estadísticos que en Matplotlib habría que armar a mano. Se usa Seaborn para explorar rápido y Matplotlib cuando necesitas control fino.

### ¿Para qué sirve reshape en NumPy?

Reorganiza la forma de un array sin alterar sus valores, por ejemplo convertir una fila de cuatro elementos en una columna. Muchos errores de scikit-learn del tipo "esperaba una forma distinta" se resuelven con un reshape.

El temario es lo fácil. Que el dato de abajo sea confiable, no

Cualquiera arma hoy un temario con IA. Lo que sigue costando en una empresa es que los números salgan bien, a tiempo y que todas las áreas midan igual. Eso es **consultoría de negocios con datos**, y es donde el mismo tema deja de ser un curso.

[Ver consultoría con datos](https://missyera.com/consultoria-ia/)[Diagnostica en qué etapa está tu empresa](https://missyera.com/diagnostico-madurez-ia/)

## Y por qué el bucle es cien veces más lento

NumPy no es solo otra librería: es la razón por la que en pandas nunca deberías recorrer las filas con un for.

Eso está explicado con el ejemplo medido en la [guía de Python desde cero](https://missyera.com/guias/python-desde-cero/), junto con el resto del recorrido.

## La base sobre la que corre todo lo demás

NumPy es lo que hay debajo de casi toda librería de machine learning que vayas a usar. Entenderlo hace que el resto deje de parecer magia.

El [libro de machine learning](https://missyera.com/guias/machine-learning-desde-cero/) lo usa de principio a fin, y [el curso de ingeniería de IA en producción](https://missyera.com/cursos/ingenieria-de-ia/) es donde eso pasa de cuaderno a sistema.

## Contacto

- Diagnóstico de 30 minutos con Miss Yera: https://calendly.com/soymissyera/reunion-con-yera
- Correo: hola@missyera.com
- Esta página en HTML: https://missyera.com/blog/numpy-y-matplotlib-guia/
- Índice de todas las páginas en texto: https://missyera.com/llms-index.txt
