NumPy y Matplotlib: cálculo y gráficos en Python
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. Matplotlib es la librería estándar de gráficos: con ella se hacen barras, líneas, histogramas y diagramas de dispersión. Seaborn está construida encima de Matplotlib y produce gráficos estadísticos más atractivos con menos código.
Tabla de contenidos
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. Matplotlib es la librería estándar de gráficos: con ella se hacen barras, líneas, histogramas y diagramas de dispersión. Seaborn está construida encima de Matplotlib y produce gráficos estadísticos más atractivos con menos código.
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.
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. 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 datosLos 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, 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, y para ejecutarlo sin instalar nada, 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 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.
Aprender por tutoriales sueltos te deja a medias
Los tutoriales te enseñan comandos, no criterio. En el curso de SQL + Python vas de cero a analizar datos de verdad, con proyectos, datasets reales y alguien que te corrige. En vivo, desde S/420.
Formate con Gera
¿Quieres aprender datos?
Cursos en vivo de SQL, Python y Power BI con Gera. Clases por Zoom, datos reales y feedback directo. Tambien hacemos capacitacion in-company.
Ver cursos de datos
Sigue aprendiendo
Pandas en Python: la guía para analizar datos desde cero
6 min de lectura
Sintaxis de Python: variables, condicionales, bucles y listas
7 min de lectura
Qué es Google Colab: cómo usarlo para programar sin instalar nada
6 min de lectura