[英]Iterate over array of args in scipy.integrate without for-loops
假設我有一個 function f(x) = a*x,我想對給定的 a 對 x 進行積分。 我希望能夠通過 scipy.integrate.quad 一個 arg 'a' 數組進行迭代。 對於一個參數,我知道這可以通過
import numpy as np
from scipy import integrate
param = 1
def f(x,a):
return a*x
integral = integrate.quad(f,0,1,args = (param)) # 0,1 are just arbitrary limits of integration
print(integral)
按預期工作。 但是,如果我想遍歷一個參數值數組,例如)
param = np.array([1,2])
def f(x,a):
return a*x
integral = integrate.quad(f,0,1,args = (param))
print(integral)
我收到錯誤消息:“只有 size-1 arrays 可以轉換為 Python 標量”。 顯然我可以通過實現類似的東西來避免這種情況
integrals = []
for i in param:
integrals.append(integrate.quad(f,0,1,args = (i)))
但我想盡可能避免使用 for 循環,以便為較大的參數 arrays 和多重積分保持快速的代碼。 你建議我怎么做?
試試 quad_vec: https://docs.scipy.org/doc/scipy/reference/generated/scipy.integrate.quad_vec.ZFC35FDC70D5FC69D269883A822C7A53
也不要忘記參數元組的逗號: args=(i, )
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.