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.