Generar números aleatorios con el módulo np.random
Vamos a exprimir el módulo np.random durante el resto de este curso y su segunda parte. De hecho, seguramente llamarás a métodos de instancias de RNG más que a cualquier otra función cuando te pongas el sombrero de hacker de la estadística. Empecemos probando una función sencilla, rng.random(). Esta función devuelve un número aleatorio entre cero y uno. Si llamas a rng.random() varias veces, verás cómo los valores van saltando entre cero y uno.
En este ejercicio, generaremos muchos números aleatorios entre cero y uno y luego representaremos un histograma con los resultados. Si los números son realmente aleatorios, todas las barras del histograma deberían tener una altura (aproximadamente) igual.
Habrás notado que, en el vídeo, Justin generó 4 números aleatorios pasando el argumento con nombre size=4 a rng.random(). Ese enfoque es más eficiente que un bucle for. En este ejercicio, sin embargo, escribirás un bucle for para vivir la experiencia del hacker estadístico como la práctica de repetir un experimento una y otra vez.
Este ejercicio forma parte del curso
Pensamiento estadístico en Python (Parte 1)
Instrucciones del ejercicio
- Instancia y fija la semilla de un generador de números aleatorios,
rng, usando la semilla42. - Inicializa un array vacío,
random_numbers, de 100.000 elementos para almacenar los números aleatorios. Asegúrate de usarnp.empty(100000)para hacerlo. - Escribe un bucle
forpara extraer 100.000 números aleatorios usandorng.random(), almacenándolos en el arrayrandom_numbers. Para ello, itera sobrerange(100000). - Traza un histograma de
random_numbers. En este caso no es necesario etiquetar los ejes porque solo estamos comprobando el generador de números aleatorios. Pulsa Enviar para mostrar tu gráfico.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# Instantiate and seed the random number generator
# Initialize random numbers: random_numbers
random_numbers = ____
# Generate random numbers by looping over range(100000)
for i in ____:
random_numbers[i] = ____
# Plot a histogram
_ = plt.hist(____)
# Show the plot
plt.show()