问题描述
这里是菜鸟。
我正在scipy.optimize.curve_fit周围创建包装,以进行多变量回归。 我能够成功运行带有两个或三个自变量的原始版本-
两个自变量-
def fn(x,a,b1,b2):
return a + b1*x[0] + b2*x[1]
popt,pcov = curve_fit(fn,x,y)
三个自变量-
def fn(x,b2,b3):
return a + b1*x[0] + b2*x[1] + b3*x[2]
popt,y)
问题是,我不知道输入中将有多少个自变量,并且我不想手动遍历函数定义的所有排列,我也不认为这是最佳实践。因此,问题是如何根据输入数据帧在此处动态创建函数fn
?
解决方法
这不是一个非常优雅的解决方案,但是您始终可以使用exec
命令like this从字符串生成Python代码。然后,您可以为函数定义动态生成字符串,并使用exec
实际创建函数。