我正在开展一个我做回归的项目,我想使用scipy.optomize.curve_fit
来获取一个函数并尝试为它找到正确的参数。奇怪的是,从未给出该函数有多少参数。最终我们猜测它使用了foo.__code__.co_nlocals
,但在我们使用它的情况下,我需要33个参数。
问题:是否有办法使用def foo(*x)
表示法让python知道它需要一定数量的参数?像def foo(*x[:32])
一样?我相信我永远不会在任何真实的代码中使用它,但知道它会很有趣。
答案 0 :(得分:1)
有没有办法使用def foo(* x)表示法让python知道它需要一定数量的参数?
不。此外,scipy.optimize.curve_fit
最终会从f.__code__.co_argcount
获取其参数计数信息,而不是co_nlocals
或n_locals
(不存在)。
答案 1 :(得分:0)
实际上,当您为fit指定函数时,它应该如下所示:
def f(x, a, b):
return a*x**b
第一个参数是变量,其他参数是参数。 Numpy知道这一点,你不需要明确指定参数的数量。