在不使用拟合的情况下找到高斯数组的西格玛

时间:2015-06-11 23:55:33

标签: python arrays gaussian

我有一个名为gaussian_array的数组,它由一系列数字组成,一旦绘制,就会形成高斯数,形成一个很好的近似值。 我需要理解这个高斯的\sigma,但我不允许使用任何类型的拟合。我到目前为止所尝试的是计算高斯的峰值,它由数组的第一个元素(高斯以原点为中心),gaussian_array[0]给出,然后我认为它可能是有用的使用FWHM和\sigma与FWHM之间众所周知的关系。 但是,我不确切知道如何在python中实现它。我认为写一些像

这样的东西会很有用
for i in range(len(gaussian_array)):
    if gaussian[i] = FWHM:
        sigma = gaussian[i]/(2.*np.sqrt(2.np.log(2)))

但我认为这不是一个可靠的程序,因为gaussian_array的某个元素与计算出的FWHM完全一致并不总是正确的。我甚至无法通过值和原点之间的差异的平方和来计算标准偏差。 那么,我如何估算sigma的{​​{1}}?

1 个答案:

答案 0 :(得分:0)

我很困惑为什么你会如此努力地计算标准偏差。在你发布它似乎你试图通过这种关系获得\sigma

enter image description here

如果您想获得标准偏差,只需使用numpy

import numpy as np

# method 1 - use np.std() on a python data structure
sigma = np.std(gaussian_array)    

# method 2 - convert to numpy array and use .std() method
gaussian_array = np.asarray(gaussian_array)
sigma = gaussian_array.std()