metoda random.seed()
Jedną z metod wbudowanych w moduł random w bibliotece Numpy jest metoda
random.seed().
Moduł Random w Numpy służy do generowania liczb losowych, ale w rzeczywistości są to liczby pseudolosowe, ponieważ w module losowo wybierane liczby można w pewien sposób określić.
Zatem moduł Random w Numpy zawiera Generator Liczb Losowych.
I właśnie jedna z wbudowanych metod tj. metoda random.seed() służy do tworzenia powtarzalnych wyników pseudolosowych.
Metoda
random.seed() polega na zapisywaniu stanu funkcji losowej, która następnie generuje te same liczby losowe przy wielokrotnym wykonaniu kodu na tej samej maszynie lub na różnych maszynach
Tworzenie powtarzalnych wyników jest powszechnym wymogiem w różnych przypadkach użycia, np. do generowania pseudolosowego klucza szyfrującego, które są ważną częścią bezpieczeństwa komputera.
Kod, który ma dobrze zdefiniowane, powtarzalne wyniki, jest dobry do testowania.
Metoda
random.seed() nic nie zwraca ale wpływa na inne metody, takie jak numpy.random.permutation(), randint() itd, i działa w zasięgu lokalnym.
Oznacza to, że jeśli określisz
numpy.random.seed() tylko np. dwa razy, a wywołasz np. metodę numpy.random.randint() wiele razy, otrzymane wyniki nie będą identyczne (ponieważ nie będą zależały od tego samego
materiału siewnego).
Przykład
from numpy import random
random.seed(0)
random.randint(1,100)
45
random.seed(0)
random.randint(1,100)
45
random.randint(1,130)
48
Nie ma znaczenia jaką liczbę wstawimy do parametru funkcji, pamiętając, że użycie różnych nasion spowoduje, że NumPy wygeneruje różne liczby pseudolosowe.
Dane wyjściowe funkcji numpy.random będą zależeć od używanego materiału siewnego.
Jeśli nie podamy żadnego parametru, wówczas do inicjacji używany jest czas bieżący.
Przykład
from numpy import random
random.seed(1)
random.choice([3,1,6,4,9])
4 #wynik
random.seed(10)
random.choice([3,1,6,4,9]) #taka sama wartość tablicy jak wyżej
1 #wynik już inny
Podsumowując, głównym powodem, dla którego używamy losowego materiału siewnego NumPy, jest tworzenie wyników, które są całkowicie powtarzalne.