对非首变量进行函数积分,寻找lambda的替代方法

2024-10-03 19:27:02 发布

您现在位置:Python中文网/ 问答频道 /正文

在Python2.7中,除了使用lambda函数将函数集成到两个变量中的第二个变量之外,还有其他方法吗?例如,我想在x上集成这个示例函数:

import numpy as np
from scipy.integrate import quad

def sqrfn(a,x):
    return a*np.square(x)

这很容易通过以下方式实现:

^{pr2}$

我想知道是否有其他方法可以做到这一点,例如使用类似的东西,我认为这更直观:

quad(sqrfn,0,10,args(a=2))

有没有其他办法?(是的,我可以将函数定义为sqrfn(x,a)并使用quad(sqrfn,0,10,args(2,)),但这不是重点)。在


Tags: 方法lambda函数fromimportnumpy示例def
2条回答
import functools
quad(functools.partial(sqrfn, 2), 0, 10)

您可以使用^{}进行此操作:

In [10]: f = functools.partial(sqrfn, 2)

这使得f(x)等价于sqrfn(2, x)

^{pr2}$

你的例子会变成:

quad(functools.partial(sqrfn, 2), 0, 10)

相关问题 更多 >