100 votes

Constamment créer le même tableau numpy aléatoire

Je suis en attente pour un autre développeur pour finir un morceau de code qui sera de retour une np matrice de la forme (100,2000) avec des valeurs de -1,0, ou 1.

En attendant, je veux hasard de créer un tableau de mêmes caractéristiques, ce que je peux prendre de l'avance sur mon développement et de test. Le truc c'est que je veux c'créé aléatoirement tableau d'être la même à chaque fois, de sorte que je ne suis pas test contre un réseau qui ne cesse de changer sa valeur à chaque fois que je ré-exécuter mon processus.

Je peux créer mon tableau comme ça, mais est-il un moyen de les créer, de sorte que c'est la même chose à chaque fois. Je peux pickle l'objet et unpickle, mais vous vous demandez si il ya une autre façon.

r=np.random.randint(3, size=(100,2000))-1

204voto

Robert Kern Points 4058

Créez votre propre instance de numpy.random.RandomState() avec la graine choisie. N'utilisez pas numpy.random.seed() sauf pour contourner des bibliothèques inflexibles qui ne vous laissent pas passer autour de votre propre instance RandomState .

 [~]
|1> from numpy.random import RandomState

[~]
|2> prng = RandomState(1234567890)

[~]
|3> prng.randint(-1, 2, size=10)
array([ 1,  1, -1,  0,  0, -1,  1,  0, -1, -1])

[~]
|4> prng2 = RandomState(1234567890)

[~]
|5> prng2.randint(-1, 2, size=10)
array([ 1,  1, -1,  0,  0, -1,  1,  0, -1, -1])
 

95voto

Sven Marnach Points 133943

Ajoutez simplement au générateur de nombres aléatoires une valeur fixe, par exemple

 numpy.random.seed(42)
 

De cette façon, vous obtiendrez toujours la même séquence de nombres aléatoires.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X