Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 用正态分布拟合加权直方图_Python_Scipy_Histogram - Fatal编程技术网

Python 用正态分布拟合加权直方图

Python 用正态分布拟合加权直方图,python,scipy,histogram,Python,Scipy,Histogram,我知道如何使用SCipy库将进入直方图的数据拟合为正态分布,但如果在数据的基础上,我有一个具有相同维度的权重数组,我又怎么能做到同样的事情呢。是否有一个适当的函数,或者我应该创建一个由数据提供的第二个数组并自己对其进行加权 干杯 编辑: 这里已经回答了这个问题: 只需打开“权重”参数并传入权重数组: scipy.stats.histogram(a, numbins=10, defaultlimits=None, weights=None, printextras=False) 从文档中: 权重

我知道如何使用SCipy库将进入直方图的数据拟合为正态分布,但如果在数据的基础上,我有一个具有相同维度的权重数组,我又怎么能做到同样的事情呢。是否有一个适当的函数,或者我应该创建一个由数据提供的第二个数组并自己对其进行加权

干杯

编辑:

这里已经回答了这个问题:


只需打开“权重”参数并传入权重数组:

scipy.stats.histogram(a, numbins=10, defaultlimits=None, weights=None, printextras=False)
从文档中:

权重:类似于数组,可选a中每个值的权重。 默认值为“无”,这使每个值的权重为1.0

注意:从v1.0开始,但从v1.11开始,具有类似但不完全相同的调用签名,其中包括weights=参数:

numpy.histogram(a, bins=10, range=None, normed=False, weights=None, density=None)

如果你正在寻找一个正态分布的Nmu,西格玛 您可以根据输入数据精确计算mu和sigma

例如:X=x1,…,xN是值,W=w1,…,wN是它们的权重

mu = sum (X * W) / sum(W)
sigma = np.sqrt (sum (W * (X- mu)**2) / sum(W))

如果要拟合另一种分布,我建议使用OpenTURNS库进行解答。

Hum,我一直在使用它绘制加权数据,但我也想拟合它,同时考虑权重。虽然无法使用scipy.stats.norm.fit方法,但它似乎没有附加权重参数。如果您希望通过编程方式生成权重,也许可以看看这个,嗯,这似乎不是我想要的,我想要一个加权直方图的均值和方差的估计值,以及它看起来有多像正态分布而不是从中生成样本。它看起来有多像正态分布真的没有任何意义。检查样本的平均值及其方差,看它是否接近正常值,但这与直方图无关。直方图只是一种视觉表现。如果你想用一种比普通方法更容易的方式查看你的样本,你可以使用。至于计算加权平均值和方差,你的问题的关键似乎是,我相信你可以想象如何在python中实现它,有一个函数用于这样一个基本的计算。那就用一个