Je sais que pour semer le caractère aléatoire de numpy.random et pouvoir le reproduire, je devrais nous:
import numpy as np
np.random.seed(1234)
mais que fait np.random.RandomState()
?
Si vous voulez définir la graine qui appelle à np.random...
utilisera, utilisera np.random.seed
:
np.random.seed(1234)
np.random.uniform(0, 10, 5)
#array([ 1.9151945 , 6.22108771, 4.37727739, 7.85358584, 7.79975808])
np.random.Rand(2,3)
#array([[ 0.27259261, 0.27646426, 0.80187218],
# [ 0.95813935, 0.87593263, 0.35781727]])
Utilisez la classe pour éviter d’impacter l’état global de numpy:
r = np.random.RandomState(1234)
r.uniform(0, 10, 5)
#array([ 1.9151945 , 6.22108771, 4.37727739, 7.85358584, 7.79975808])
Et cela maintient l'état comme avant:
r.Rand(2,3)
#array([[ 0.27259261, 0.27646426, 0.80187218],
# [ 0.95813935, 0.87593263, 0.35781727]])
Vous pouvez voir l'état de la sorte de classe 'globale' avec:
np.random.get_state()
et de votre propre instance de classe avec:
r.get_state()
np.random.RandomState()
construit un générateur de nombres aléatoires. Cela n'a aucun effet sur les fonctions autonomes de np.random
, mais doit être utilisé explicitement:
>>> rng = np.random.RandomState(42)
>>> rng.randn(4)
array([ 0.49671415, -0.1382643 , 0.64768854, 1.52302986])
>>> rng2 = np.random.RandomState(42)
>>> rng2.randn(4)
array([ 0.49671415, -0.1382643 , 0.64768854, 1.52302986])
random.seed est une méthode pour remplir random.RandomState conteneur.
de numpy docs:
numpy.random.seed(seed=None)
Semez le générateur.
Cette méthode est appelée lorsque RandomState est initialisé. Il peut être appelé à nouveau pour réensemencer le générateur. Pour plus de détails, voir RandomState.
class numpy.random.RandomState
Conteneur du générateur de nombres pseudo aléatoires de Mersenne Twister.