Fit to function values with numpy/scipy
Machiel Kolstein
mkolstein at ifae.es
Mon Nov 25 08:36:32 EST 2019
If I have an array with values, which are distributed according to a Gaussian function, then I can fit with:
(fit_mu, fit_sigma) = stats.norm.fit(x_array)
However, now, I have one array with values for the xbins (e.g., 0.0, 0.1, 0.2, 0.3, ..., up till 1.0) and one value for the corresponding y-value (e.g. 0.0, 0.3, 0.6, 1.2, 5.0, 10.0, 5.0, 1.2, 0.6, 0.3, 0.0).
(These values are just an example).
Now I want to fit this, with a Gauss. So, obviously I don't want to fit over neither the values in xbins, nor the y_array (neither of which is normal distributed) but over the y values for each x bin.
The only thing I can think of is looping over all bins, and then filling an artificial array:
for i in range(0, Nbins):
x = xbinvalue(i)
weight = y_value_for_this_x(x)
for w in range(0, weight)
numpy.vstack((tmp_array, x)
(fit_mu, fit_sigma) = scipy.stats.norm.fit(tmp_array)
But this seems a rather silly way of doing this. Is there an other way?
Cheers,
Machiel
--
Avís -
Aviso - Legal Notice - (LOPD) - http://legal.ifae.es
<http://legal.ifae.es/>
More information about the Python-list
mailing list