0
聲明一個函數參數列表我正在尋找建立一個通用對象的曲線擬合,其中我定義的參數名稱,值和界限。有時,我想使用傳入數據來幫助使用函數(最小值,最大值等)來定義邊界。python
這裏是對象:
class CurveFitObject(object):
def __init__(self,paramList,growthEquation):
self.paramList = paramList
self.gmod = Model(growthEquation)
def calcCurveFit(data):
for param in self.paramList:
self.gmod.set_param_hint(self.paramList['name'],
value=self.paramList['value'](data),
min=self.paramList['min'](data),
max=self.paramList['max'](data))
在這裏,我試圖用np.min(數據)作爲我的猜測,0.975 * np.min(數據)作爲我的下邊界,而1.025 * NP .min(數據)作爲我的上限。
def growthEquation(self, t, A): return A
keys = ['name','guess','min','max','vary']
logisticGrowth = CurveFitObject(
[dict(zip(keys,['A',np.min,0.975*np.min,1.025*np.min,True])),
growthEquation
)
我得到以下錯誤:TypeError: unsupported operand type(s) for *: 'float' and 'function'
這是有道理的,因爲它試圖做功能0.975*np.min
而非0.975*np.min(data)
數學。
實施此行爲的最佳方法是什麼?如果有的話?
完美地工作。謝謝。 – nven