np.random.seed(0)
hace que los números aleatorios sean predecibles
>>> numpy.random.seed(0) ; numpy.random.rand(4)
array([ 0.55, 0.72, 0.6 , 0.54])
>>> numpy.random.seed(0) ; numpy.random.rand(4)
array([ 0.55, 0.72, 0.6 , 0.54])
Con el reinicio inicial (cada vez), aparecerá el mismo conjunto de números cada vez.
Si la semilla aleatoria no se restablece, aparecen diferentes números con cada invocación:
>>> numpy.random.rand(4)
array([ 0.42, 0.65, 0.44, 0.89])
>>> numpy.random.rand(4)
array([ 0.96, 0.38, 0.79, 0.53])
Los números (pseudo-) aleatorios funcionan comenzando con un número (la semilla), multiplicándolo por un número grande, agregando un desplazamiento y luego tomando el módulo de esa suma. El número resultante se utiliza como semilla para generar el siguiente número "aleatorio". Cuando establece la semilla (cada vez), hace lo mismo cada vez, dándole los mismos números.
Si desea números aparentemente aleatorios, no establezca la semilla. Sin embargo, si tiene un código que utiliza números aleatorios que desea depurar, puede ser muy útil establecer la semilla antes de cada ejecución para que el código haga lo mismo cada vez que lo ejecute.
Para obtener los números más aleatorios para cada ejecución, llame al numpy.random.seed()
. Esto hará que numpy establezca la semilla en un número aleatorio obtenido de /dev/urandom
su análogo de Windows o, si ninguno de los dos está disponible, usará el reloj.
Para obtener más información sobre el uso de semillas para generar números pseudoaleatorios, consulte wikipedia .