【发布时间】:2019-07-23 15:27:59
【问题描述】:
我有一个来自kaggle 的数据集,共有 45,253 行和一列用于底特律市开尔文温度的单列。平均值 = 282.97,标准值 = 11,最小值 = 243.48,最大值 = 308.05。
这是绘制为密度 = True 的 100 个 bin 的直方图时的结果:
在这里使用 scipy.stats.norm.pdf 喜欢这个:
我使用以下图像生成了上面的图像:
x = np.linspace(dataset.Detroit.min(), dataset.Detroit.max(), 1001)
P_norm = norm.pdf(x, dataset.Detroit.mean(), dataset.Detroit.std())
plot_pdf_single(x, P_norm)
但是,每当我尝试实现这两个近似函数中的任何一个时,我的 P_norm 的所有值都会导致 0 或 infs。
这是我尝试过的:
P_norm = [(1.0/(np.sqrt(2.0*pi*(std*std))))*np.exp(((-x_i-mu)*(-x_i-mu))/(2.0*(std*std))) for x_i in x]
我还将它分解为单个 x_i:
part1 = ((-x[0] - mu)*(-x[0] - mu)) / (2.0*(std * std))
part2 = np.exp(part1)
part3 = 1.0 / (np.sqrt(2.0 * pi * (std*std)))
total = part3*part2
我得到以下值:
1145.3913234604413
inf
0.036267480036493875
inf
【问题讨论】:
-
请尝试
-(x_i-mu)*(x_i-mu) -
谢谢你,成功了。令人惊讶的是,一个简单的减号如何在 0 和无穷大之间产生差异......
标签: python-3.x numpy approximation