Een normale verdeling genereren in python (met voorbeelden)
Je kunt snel eennormale verdeling genereren in Python met behulp van de functie numpy.random.normal() , die de volgende syntaxis gebruikt:
numpy. random . normal (loc=0.0, scale=1.0, size=None)
Goud:
- loc: Gemiddelde van de verdeling. De standaardwaarde is 0.
- schaal: standaardafwijking van de verdeling. De standaardwaarde is 1.
- grootte: steekproefomvang.
Deze tutorial toont een voorbeeld van het gebruik van deze functie om een normale distributie in Python te genereren.
Gerelateerd: Hoe maak je een Bell Curve in Python
Voorbeeld: een normale verdeling genereren in Python
De volgende code laat zien hoe u een normale verdeling in Python genereert:
from numpy. random import seed
from numpy. random import normal
#make this example reproducible
seed(1)
#generate sample of 200 values that follow a normal distribution
data = normal (loc=0, scale=1, size=200)
#view first six values
data[0:5]
array([ 1.62434536, -0.61175641, -0.52817175, -1.07296862, 0.86540763])
We kunnen snel het gemiddelde en de standaardafwijking van deze verdeling vinden:
import numpy as np
#find mean of sample
n.p. mean (data)
0.1066888148479486
#find standard deviation of sample
n.p. std (data, ddof= 1 )
0.9123296653173484
We kunnen ook een snel histogram maken om de verdeling van gegevenswaarden te visualiseren:
import matplotlib. pyplot as plt
count, bins, ignored = plt. hist (data, 30)
plt. show ()
We kunnen zelfs een Shapiro-Wilk-test uitvoeren om te zien of de dataset uit een normale populatie komt:
from scipy. stats import shapiro
#perform Shapiro-Wilk test
shapiro(data)
ShapiroResult(statistic=0.9958659410, pvalue=0.8669294714)
De p-waarde van de test blijkt 0,8669 te zijn. Omdat deze waarde niet kleiner is dan 0,05, kunnen we aannemen dat de steekproefgegevens afkomstig zijn uit een normaal verdeelde populatie.
Dit resultaat zou geen verrassing moeten zijn, aangezien we de gegevens hebben gegenereerd met behulp van de functie numpy.random.normal() , die een willekeurige steekproef van gegevens uit een normale verdeling genereert.