有没有人知道一个scipy/numpy模块,它将允许指数衰减数据?
谷歌搜索返回了一些博客文章,例如http://exnumerus.blogspot.com/2010/04/how-to-fit-exponential-decay-example-in.html,但该解决方案要求y-offset为预先指定的,这并不总是可行的
编辑:
curve_fit可以工作,但是如果没有参数的初始猜测,它可能会非常悲惨地失败,这有时是需要的.我正在使用的代码是
#!/usr/bin/env python
import numpy as np
import scipy as sp
import pylab as pl
from scipy.optimize.minpack import curve_fit
x = np.array([ 50., 110., 170., 230., 290., 350., 410., 470.,
530., 590.])
y = np.array([ 3173., 2391., 1726., 1388., 1057., 786., 598.,
443., 339., 263.])
smoothx = np.linspace(x[0], x[-1], 20)
guess_a, guess_b, guess_c = 4000, -0.005, 100
guess = [guess_a, guess_b, guess_c]
exp_decay = lambda x, A, t, y0: A * np.exp(x * t) + …Run Code Online (Sandbox Code Playgroud) 我想这样使用numpy.exp:
cc = np.array([
[0.120,0.34,-1234.1]
])
print 1/(1+np.exp(-cc))
Run Code Online (Sandbox Code Playgroud)
但这给了我错误:
/usr/local/lib/python2.7/site-packages/ipykernel/__main__.py:5: RuntimeWarning: overflow encountered in exp
Run Code Online (Sandbox Code Playgroud)
我不明白为什么?我怎样才能解决这个问题?似乎问题在于第三个数字(-1234.1)