Je veux utiliser une graine avec np.random.permutation
, comme
np.random.permutation(10, seed=42)
Je reçois l'erreur suivante:
"permutation() takes no keyword arguments"
Comment puis-je faire cela? Merci.
Si vous le souhaitez sur une ligne, vous pouvez créer une nouvelle RandomState
et appeler la permutation
à ce sujet:
np.random.RandomState(seed=42).permutation(10)
C'est mieux que de simplement définir la valeur de départ de np.random
, car cela n'aura qu'un effet localisé.
np.random.seed(42)
np.random.permutation(10)
Si vous souhaitez appeler np.random.permutation(10)
plusieurs fois et obtenir des résultats identiques, vous devez également appeler np.random.seed(42)
chaque fois que vous appelez permutation()
.
Par exemple,
np.random.seed(42)
print(np.random.permutation(10))
print(np.random.permutation(10))
produira des résultats différents:
[8 1 5 0 7 2 9 4 3 6]
[0 1 8 5 3 4 7 9 6 2]
tandis que
np.random.seed(42)
print(np.random.permutation(10))
np.random.seed(42)
print(np.random.permutation(10))
donnera le même résultat:
[8 1 5 0 7 2 9 4 3 6]
[8 1 5 0 7 2 9 4 3 6]
Définir la graine dans la ligne précédente
np.random.seed(42)
np.random.permutation(10)
Vous pouvez le décomposer en:
import numpy as np
np.random.seed(10)
np.random.permutation(10)
En initialisant la graine aléatoire en premier, vous obtiendrez la même permutation.