Skip to main content
 首页 » 编程设计

python之集成返回数组的函数的 pythonic 方法是什么(使用 scipy quad)

2025年05月04日12dudu

我有一个返回数组的函数:

def fun(x,a): 
    return [a*x,a*x**2] 

我想整合它(使用 scipy quad):

def integrate(a): 
    return quad(fun[0],0,1,args=a) 
print integrate(1) 

这给出了 TypeError: 'function' object is not subscriptable。
执行此操作的正确的 pythonic 方法是什么?

请您参考如下方法:

围绕 fun 创建一个包装函数来选择数组的一个元素。例如,下面将整合数组的第一个元素。

from scipy.integrate import quad 
 
# The function you want to integrate 
def fun(x, a): 
    return np.asarray([a * x, a * x * x]) 
 
# The wrapper function 
def wrapper(x, a, index): 
    return fun(x, a)[index] 
 
# The integration 
quad(wrapper, 0, 1, args=(1, 0)) 

按照@RobertB 的建议,您应该避免定义一个函数int,因为它会混淆内置名称。