np.random.seed(0)
rende prevedibili i numeri casuali
>>> 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])
Con il seed reset (ogni volta), lo stesso set di numeri apparirà ogni volta.
Se il seed casuale non viene resettato, ad ogni invocazione compaiono numeri diversi :
>>> 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])
I numeri (pseudo-) casuali funzionano iniziando con un numero (il seme), moltiplicandolo per un numero elevato, aggiungendo un offset, quindi prendendo il modulo di quella somma. Il numero risultante viene quindi utilizzato come seme per generare il successivo numero "casuale". Quando imposti il seme (ogni volta), fa sempre la stessa cosa, dandoti gli stessi numeri.
Se vuoi numeri apparentemente casuali, non impostare il seme. Se si dispone di codice che utilizza numeri casuali che si desidera eseguire il debug, tuttavia, può essere molto utile impostare il seed prima di ogni esecuzione in modo che il codice faccia la stessa cosa ogni volta che lo si esegue.
Per ottenere i numeri più casuali per ogni corsa, chiama numpy.random.seed()
. Questo farà sì che numpy imposti il seed su un numero casuale ottenuto da /dev/urandom
o dal suo analogo di Windows o, se nessuno di questi è disponibile, utilizzerà l'orologio.
Per ulteriori informazioni sull'uso dei semi per generare numeri pseudo-casuali, consultare Wikipedia .