Willekeurige getallen genereren met de module np.random
We gaan in de rest van deze cursus en het vervolg veel gebruikmaken van de module np.random. Sterker nog, met je hacker-statisticus-pet op zul je waarschijnlijk vaker methoden van RNG-instanties aanroepen dan welke andere functie dan ook. Laten we beginnen met een eenvoudige functie, rng.random(), om even te proberen. De functie geeft een willekeurig getal tussen nul en één terug. Als je rng.random() een paar keer aanroept, zie je getallen rondspringen tussen nul en één.
In deze oefening genereren we veel willekeurige getallen tussen nul en één en plotten we vervolgens een histogram van de resultaten. Als de getallen echt willekeurig zijn, zouden alle balken in het histogram (bijna) even hoog moeten zijn.
Je hebt misschien gemerkt dat Justin in de video 4 willekeurige getallen genereerde door het keyword-argument size=4 aan rng.random() door te geven. Zo’n aanpak is efficiënter dan een for-loop; in deze oefening schrijf je echter bewust een for-loop om hackerstatistiek te ervaren als het herhaald uitvoeren van een experiment.
Deze oefening maakt deel uit van de cursus
Statistisch denken in Python (deel 1)
Oefeninstructies
- Instantieer en seed een willekeurige getallengenerator,
rng, met de seed42. - Initialiseer een lege array,
random_numbers, met 100.000 elementen om de willekeurige getallen in op te slaan. Gebruik hiervoornp.empty(100000). - Schrijf een
for-loop om 100.000 willekeurige getallen te trekken metrng.random()en sla ze op in de arrayrandom_numbers. Loop hiervoor overrange(100000). - Plot een histogram van
random_numbers. Het is in dit geval niet nodig om de assen te labelen, omdat we alleen de willekeurigegetallengenerator controleren. Klik op Antwoord verzenden om je plot te tonen.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# Instantiate and seed the random number generator
# Initialize random numbers: random_numbers
random_numbers = ____
# Generate random numbers by looping over range(100000)
for i in ____:
random_numbers[i] = ____
# Plot a histogram
_ = plt.hist(____)
# Show the plot
plt.show()