Náhodná čísla v NumPy
Co je to náhodné číslo?
Náhodné číslo NEZNAMENÁ pokaždé jiné číslo. Náhodný znamená něco, co nelze logicky předvídat.
Pseudonáhodné a pravé náhody.
Počítače pracují na programech a programy jsou definitivní sadou instrukcí. Takže to znamená, že musí existovat nějaký algoritmus pro generování náhodného čísla.
Pokud existuje program pro generování náhodného čísla, lze jej předvídat, takže není skutečně náhodné.
Náhodná čísla generovaná pomocí generovacího algoritmu se nazývají pseudonáhodná .
Dokážeme vytvořit skutečně náhodná čísla?
Ano. Abychom na našich počítačích vygenerovali skutečně náhodné číslo, potřebujeme získat náhodná data z nějakého vnějšího zdroje. Tímto externím zdrojem jsou obecně naše stisky kláves, pohyby myši, data v síti atd.
Nepotřebujeme skutečně náhodná čísla, pokud to nesouvisí s bezpečností (např. šifrovací klíče) nebo základem aplikace je náhodnost (např. kola digitální rulety).
V tomto tutoriálu budeme používat pseudonáhodná čísla.
Generovat náhodné číslo
NumPy nabízí random
modul pro práci s náhodnými čísly.
Příklad
Vygenerujte náhodné celé číslo od 0 do 100:
from numpy import random
x = random.randint(100)
print(x)
Generovat náhodný plovák
Metoda náhodného modulu rand()
vrací náhodný float mezi 0 a 1.
Příklad
Vygenerujte náhodný float od 0 do 1:
from numpy import random
x = random.rand()
print(x)
Generovat náhodné pole
V NumPy pracujeme s poli a můžete použít dvě metody z výše uvedených příkladů k vytvoření náhodných polí.
Celá čísla
Metoda randint()
přebírá size
parametr, kde můžete určit tvar pole.
Příklad
Vygenerujte 1-D pole obsahující 5 náhodných celých čísel od 0 do 100:
from numpy import random
x=random.randint(100, size=(5))
print(x)
Příklad
Vygenerujte 2-D pole se 3 řádky, každý řádek obsahuje 5 náhodných celých čísel od 0 do 100:
from numpy import random
x = random.randint(100, size=(3, 5))
print(x)
Plováky
Metoda rand()
také umožňuje určit tvar pole.
Příklad
Vygenerujte 1-D pole obsahující 5 náhodných floatů:
from numpy import random
x = random.rand(5)
print(x)
Příklad
Vygenerujte 2-D pole se 3 řádky, každý řádek obsahuje 5 náhodných čísel:
from numpy import random
x = random.rand(3, 5)
print(x)
Generovat náhodné číslo z pole
Metoda choice()
umožňuje generovat náhodnou hodnotu na základě pole hodnot.
Metoda choice()
bere jako parametr pole a náhodně vrací jednu z hodnot.
Příklad
Vraťte jednu z hodnot v poli:
from numpy import random
x = random.choice([3, 5, 7, 9])
print(x)
Metoda choice()
také umožňuje vrátit pole hodnot.
Přidejte size
parametr k určení tvaru pole.
Příklad
Vygenerujte 2-D pole, které se skládá z hodnot v parametru pole (3, 5, 7 a 9):
from numpy import random
x = random.choice([3, 5, 7, 9], size=(3, 5))
print(x)