np.random.seed(0)
macht die Zufallszahlen vorhersehbar
>>> 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])
Beim Zurücksetzen des Startwerts (jedes Mal) wird jedes Mal derselbe Satz von Zahlen angezeigt.
Wenn der zufällige Startwert nicht zurückgesetzt wird, werden bei jedem Aufruf unterschiedliche Zahlen angezeigt:
>>> 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])
(Pseudo-) Zufallszahlen beginnen mit einer Zahl (dem Startwert), multiplizieren sie mit einer großen Zahl, addieren einen Versatz und nehmen dann Modulo dieser Summe. Die resultierende Zahl wird dann als Startwert verwendet, um die nächste "Zufallszahl" zu erzeugen. Wenn Sie den Startwert festlegen (jedes Mal), wird jedes Mal dasselbe ausgeführt, und Sie erhalten die gleichen Zahlen.
Wenn Sie scheinbar zufällige Zahlen möchten, setzen Sie den Startwert nicht. Wenn Sie Code haben, der Zufallszahlen verwendet, die Sie debuggen möchten, kann es jedoch sehr hilfreich sein, den Startwert vor jedem Lauf festzulegen, damit der Code bei jeder Ausführung dasselbe tut.
Rufen Sie an, um die meisten Zufallszahlen für jeden Lauf zu erhalten numpy.random.seed()
. Dies führt dazu, dass numpy den Startwert auf eine Zufallszahl setzt, die von /dev/urandom
oder seinem Windows-Analogon erhalten wurde, oder, falls keine davon verfügbar ist, die Uhr verwendet.
Weitere Informationen zur Verwendung von Seeds zur Erzeugung von Pseudozufallszahlen finden Sie in Wikipedia .