我目前正在编写一个名为f_from_data的python定义,到目前为止,我在一行上使用了插值查找点:
def f_from_data(xs, ys, x):
xfine = np.linspace(min(xs), max(xs), 10000)
y0 = inter.interp1d(xs, ys, kind = 'linear')
ans = (y0(xfine))[numpy.searchsorted(xfine, x)]
ans = round(ans,2)
return ans
这给了我我想要的东西,所以我可以输入:
f = f_from_data([3, 4, 6], [0, 1, 2])
print f(3)
>>>0.0
我该怎么做呢?我环顾四周,但似乎找不到任何东西,因为我认为它确实很琐碎,但我只是缺少一些东西。
最佳答案
使用functools.partial
:
from functools import partial
f = partial(f_from_data, [3, 4, 6], [0, 1, 2])
partial
将创建一个已经设置了前两个参数的可调用对象。关于python - 如何产生 "Callable function",我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27592161/