7. Estadísticas y funciones de agregación

Una de las grandes ventajas de NumPy, la biblioteca numérica de Python, es que incluye funciones estadísticas y de agregación muy rápidas. Operan sobre arrays completos o sobre subconjuntos definidos por ejes, lo que permite analizar datos sin escribir bucles manuales.

7.1 Mínimo y máximo

Con np.min() y np.max() obtenemos el valor más bajo y más alto de un array.

import numpy as np

arr = np.array([5, 12, 7, 20, 15])

print("Mínimo:", np.min(arr))  # 5
print("Máximo:", np.max(arr))  # 20

👉 También existen los métodos .min() y .max() que funcionan igual:

print("Mínimo (método):", arr.min())
print("Máximo (método):", arr.max())

7.2 Media y mediana

Media (promedio): np.mean(). Mediana (valor central): np.median().

arr = np.array([1, 2, 3, 4, 5, 100])

print("Media:", np.mean(arr))      # 19.166...
print("Mediana:", np.median(arr))  # 3.5

👉 Diferencia clave: la media se ve afectada por valores extremos (outliers), mientras que la mediana no.

7.3 Desviación estándar

La desviación estándar mide la dispersión de los datos respecto de la media.

arr = np.array([10, 12, 14, 16, 18])

print("Media:", np.mean(arr))
print("Desviación estándar:", np.std(arr))  # 2.828...

7.4 Suma y producto

np.sum() suma todos los elementos; np.prod() multiplica todos los elementos.

arr = np.array([1, 2, 3, 4])

print("Suma:", np.sum(arr))      # 10
print("Producto:", np.prod(arr)) # 24

7.5 Operaciones a lo largo de ejes

En matrices (2D) o arrays de más dimensiones, podemos aplicar funciones estadísticas por filas o columnas usando el parámetro axis.

Regla: axis=0 opera por columnas (a lo largo de las filas) y axis=1 opera por filas (a lo largo de las columnas).

mat = np.array([[1, 2, 3],
                [4, 5, 6],
                [7, 8, 9]])

print("Suma total:", np.sum(mat))                 # 45
print("Suma por columnas:", np.sum(mat, axis=0)) # [12 15 18]
print("Suma por filas:", np.sum(mat, axis=1))    # [ 6 15 24]

print("Media por columnas:", np.mean(mat, axis=0)) # [4. 5. 6.]
print("Máximo por filas:", np.max(mat, axis=1))    # [3 6 9]

Resumen

  • np.min() / np.max(): valores mínimo y máximo.
  • np.mean() / np.median(): promedio y mediana.
  • np.std(): desviación estándar.
  • np.sum() / np.prod(): suma y producto.
  • Todas estas funciones aceptan axis para trabajar por filas (axis=1) o columnas (axis=0).

Nota: Estas funciones estadísticas y de agregación son la base de cualquier análisis de datos con NumPy.