np.random.seed(0)
rend les nombres aléatoires prévisibles
>>> 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])
Avec la réinitialisation de la graine (à chaque fois), le même ensemble de chiffres apparaîtra à chaque fois.
Si la graine aléatoire n'est pas réinitialisée, des nombres différents apparaissent à chaque invocation:
>>> 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])
Les nombres (pseudo-) aléatoires fonctionnent en commençant par un nombre (la graine), en le multipliant par un grand nombre, en ajoutant un décalage, puis en prenant le modulo de cette somme. Le nombre résultant est ensuite utilisé comme graine pour générer le nombre "aléatoire" suivant. Lorsque vous définissez la graine (à chaque fois), cela fait la même chose à chaque fois, en vous donnant les mêmes chiffres.
Si vous voulez des nombres apparemment aléatoires, ne définissez pas la graine. Si vous avez du code qui utilise des nombres aléatoires que vous souhaitez déboguer, cependant, il peut être très utile de définir la valeur de départ avant chaque exécution afin que le code fasse la même chose chaque fois que vous l'exécutez.
Pour obtenir le nombre le plus aléatoire de chaque série, appelez numpy.random.seed()
. Cela amènera numpy à définir la valeur de départ sur un nombre aléatoire obtenu à partir de /dev/urandom
ou son analogue Windows ou, si aucun de ceux-ci n'est disponible, il utilisera l'horloge.
Pour plus d'informations sur l'utilisation de graines pour générer des nombres pseudo-aléatoires, voir wikipedia .