gpt4 book ai didi

python - np.random.normal 的非随机采样版本

转载 作者:行者123 更新时间:2023-12-01 04:11:22 24 4
gpt4 key购买 nike

我正在尝试生成一个遵循精确高斯分布的单个数组。 np.random.normal 是通过从高斯中随机采样来实现这一点的,但是在给定一些均值和西格玛的情况下,如何重现和精确高斯。因此,该数组将生成一个遵循精确高斯分布的直方图,而不仅仅是如下所示的近似高斯分布。

mu, sigma = 10, 1
s = np.random.normal(mu, sigma, 1000)

fig = figure()
ax = plt.axes()

totaln, bbins, patches = ax.hist(s, 10, normed = 1, histtype = 'stepfilled', linewidth = 1.2)

plt.show()

最佳答案

如果您想要精确的高斯直方图,请不要生成点。您永远无法从观察到的点获得“精确”的高斯分布,这仅仅是因为直方图箱内不能包含点的一小部分。

相反,以条形图的形式绘制曲线。

import numpy as np
import matplotlib.pyplot as plt

def gaussian(x, mean, std):
scale = 1.0 / (std * np.sqrt(2 * np.pi))
return scale * np.exp(-(x - mean)**2 / (2 * std**2))

mean, std = 2.0, 5.0
nbins = 30
npoints = 1000

x = np.linspace(mean - 3 * std, mean + 3 * std, nbins + 1)
centers = np.vstack([x[:-1], x[1:]]).mean(axis=0)
y = npoints * gaussian(centers, mean, std)

fig, ax = plt.subplots()
ax.bar(x[:-1], y, width=np.diff(x), color='lightblue')

# Optional...
ax.margins(0.05)
ax.set_ylim(bottom=0)

plt.show()

enter image description here

关于python - np.random.normal 的非随机采样版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34906438/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com