Der Unterschied zwischen np.random.seed (int) und np.random.seed (array_like)?

8

In der Python-Numpy-Bibliothek kann die np.random.seed -Methode zwei verschiedene Arten von Parametern akzeptieren: int und array_like[int] .

Was ist der Unterschied zwischen ihnen? Zum Beispiel: np.random.seed(2) und np.random.seed([2013, 1, 4]) .

    
zbtong 07.05.2016, 07:15
quelle

1 Antwort

9

Der Zustand des zugrunde liegenden Mersenne Twister PRNG ist sehr groß, 624 32-Bit-Ganzzahlen, um genau zu sein. Wenn ein Integer-Startwert angegeben wird, führt die Initialisierungsroutine einen kleineren PRNG aus, um diese einzelne 32-Bit-Ganzzahl auf den vollen 624-Element-Zustand auszudehnen. Dies bedeutet, dass Sie nicht auf die überwiegende Mehrheit der möglichen Staaten zugreifen können.

Wenn Sie eine Folge von ganzen Zahlen als Seed angeben, dann wird ein anderer kleinerer PRNG diesen verwenden, um auf 624 Elemente zu erweitern, aber eine, die das gesamte Array verwenden kann, an dem Sie es übergeben. Auf diese Weise können Sie auf den gesamten Bereich der Anfangszustände zugreifen, wenn Ihnen dies wichtig ist. Dieser Algorithmus wird zwischen dem random -Modul der Standardbibliothek und numpy.random geteilt.

    
Robert Kern 07.05.2016, 09:27
quelle

Tags und Links