我试图在许多数据点上进行高斯拟合.例如,我有一个256 x 262144数据阵列.256点需要拟合高斯分布,我需要262144.
有时高斯分布的峰值在数据范围之外,因此要获得准确的平均结果,曲线拟合是最好的方法.即使峰值在范围内,曲线拟合也会提供更好的西格玛,因为其他数据不在范围内.
我使用http://www.scipy.org/Cookbook/FittingData中的代码为一个数据点工作.
我试图重复这个算法,但看起来需要大约43分钟才能解决这个问题.是否有一种已经写好的快速方法可以并行或更有效地执行此操作?
from scipy import optimize
from numpy import *
import numpy
# Fitting code taken from: http://www.scipy.org/Cookbook/FittingData
class Parameter:
def __init__(self, value):
self.value = value
def set(self, value):
self.value = value
def __call__(self):
return self.value
def fit(function, parameters, y, x = None):
def f(params):
i = 0
for p in parameters:
p.set(params[i])
i += 1
return y - function(x)
if x is None: x = arange(y.shape[0])
p = [param() for param in parameters] …Run Code Online (Sandbox Code Playgroud)