NumPy ofrece el submódulo numpy.random, con el que podemos generar números aleatorios simples, arrays completos y muestras de distribuciones estadísticas muy utilizadas.
np.random)Existen múltiples formas de generar números aleatorios:
random.rand)import numpy as np
print("Número aleatorio [0,1):", np.random.rand())
rand)print("Array 1D:", np.random.rand(5)) # 5 números aleatorios
print("Matriz 2D:\n", np.random.rand(2, 3)) # Matriz 2x3
randint)print("Enteros aleatorios:", np.random.randint(1, 10, size=5))
# 5 números entre 1 y 9
NumPy permite simular distribuciones estadísticas.
np.random.uniform)Genera valores entre un rango [a, b) con probabilidad uniforme.
arr = np.random.uniform(0, 10, size=5)
print("Distribución uniforme [0,10):", arr)
np.random.normal)Muy utilizada en estadística y machine learning.
arr = np.random.normal(loc=0, scale=1, size=10)
print("Distribución normal (media=0, std=1):", arr)
👉 loc es la media; scale, la desviación estándar.
np.random.binomial)Se usa para experimentos “sí/no” (Bernoulli).
# Simulación: 10 experimentos, probabilidad de éxito 0.5, repetido 5 veces
arr = np.random.binomial(n=10, p=0.5, size=5)
print("Distribución binomial:", arr)
👉 Ejemplo típico: lanzar una moneda 10 veces y contar cuántas veces salió cara.
np.random.seed)Sin semilla, cada ejecución produce valores distintos. Para reproducir resultados, fijamos una semilla.
np.random.seed(42)
print("Con semilla fija:", np.random.randint(1, 100, 5))
Salida (repetible):
Con semilla fija: [52 93 15 72 61]
👉 Es clave para experimentar y comparar modelos de forma justa.
np.random.rand(): números aleatorios en [0,1).np.random.randint(a, b, size): enteros aleatorios.np.random.uniform(a, b, size): distribución uniforme.np.random.normal(media, std, size): distribución normal.np.random.binomial(n, p, size): distribución binomial.np.random.seed(valor): fija la semilla para reproducibilidad.Nota: Estas herramientas permiten crear simulaciones, experimentos y pruebas controladas en proyectos de ciencia de datos.