我正在将数据拟合到某些曲线上。我有一个模型lambda函数,我想得到它的最大值点的精确坐标(x,y)。我能够知道最大值,但是,我也需要知道它在x轴中的位置。这有可能吗?
谢谢你提前帮忙。
from pylab import *
from scipy import optimize
fitf = lambda f, x: f[0]*(1/(1+((x-f[1])/f[2])**2))
errf = lambda f, x, y: fitf(f, x) - y
f0 = [0, 1, 2]
f1, success = optimize.leastsq(errf, f0[:], args=(x, y))
pos = linspace(100, 100, 1000)
max = fitf_voigt(f1, pos).max()
print 'Peak max = %f' %maxargs(x,y)来自我的实验数据。
发布于 2013-08-08 15:08:54
您可以使用argmax函数获得最大值的位置:
In [1]: import numpy as np
In [2]: x = np.random.randn(100)
In [3]: x.max()
Out[3]: 2.6054091710887723
In [4]: x.argmax()
Out[4]: 27
In [5]: x[27]
Out[5]: 2.6054091710887723
In [6]: x[27] == x.max()
Out[6]: Truehttps://stackoverflow.com/questions/18128288
复制相似问题