np.random.seed(0)
torna previsíveis os números aleatórios
>>> 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])
Com a redefinição inicial (sempre), o mesmo conjunto de números será exibido sempre.
Se a semente aleatória não for redefinida, números diferentes aparecerão a cada chamada:
>>> 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-) números aleatórios funcionam iniciando com um número (a semente), multiplicando-o por um número grande, adicionando um deslocamento e, em seguida, obtendo o módulo dessa soma. O número resultante é então usado como a semente para gerar o próximo número "aleatório". Quando você define a semente (sempre), faz o mesmo sempre, fornecendo os mesmos números.
Se você quiser números aparentemente aleatórios, não defina a semente. Se você possui um código que usa números aleatórios que deseja depurar, no entanto, pode ser muito útil definir a semente antes de cada execução, para que o código faça a mesma coisa toda vez que você o executar.
Para obter os números mais aleatórios para cada execução, ligue numpy.random.seed()
. Isso fará com que numpy defina a semente como um número aleatório obtido de /dev/urandom
ou seu analógico do Windows ou, se nenhum deles estiver disponível, ele usará o relógio.
Para obter mais informações sobre o uso de sementes para gerar números pseudo-aleatórios, consulte a Wikipedia .