numpy.random.normal(loc=0.0, scale=1.0, size=None)
从正态(高斯)分布中抽取随机样本。
loc: 分布的均值(中心),浮点型数据或者浮点型数据组成的数组。
scale: 分布的标准差(宽度),浮点型数据或者浮点型数据组成的数组。
size: 输出值的维度,整数或者整数组成的元组,可选参数。
返回值:从含参的正态分布中抽取的随机样本,n维数组或标量。
从分布中抽取样本:
import numpy as np
mu, sigma = 0, 0.1 # 均值和标准差
s = np.random.normal(mu, sigma, 1000)
检验均值和方差:
abs(mu - np.mean(s)) < 0.01
abs(sigma - np.std(s, ddof=1)) < 0.01
利用直方图对样本进行可视化,并绘制其概率密度函数:
import matplotlib.pyplot as plt
count, bins, ignored = plt.hist(s, 30, normed=True, color='b')
plt.plot(bins, 1/(sigma * np.sqrt(2 * np.pi)) * np.exp( - (bins - mu)**2 / (2 * sigma**2) ), linewidth=2, color='r')
plt.show()