gpt4 book ai didi

python - 如何在二维数组上加速 python curve_fit?

转载 作者:太空宇宙 更新时间:2023-11-03 15:07:23 32 4
gpt4 key购买 nike

我必须对大量数据 (5 000 000) 使用 curve_fit numpy 函数。所以基本上我已经创建了一个二维数组。第一维是要执行的拟合数,第二维是用于拟合的点数。

t = np.array([0 1 2 3 4])

for d in np.ndindex(data.shape[0]):
try:
popt, pcov = curve_fit(func, t, np.squeeze(data[d,:]), p0=[1000,100])
except RuntimeError:
print("Error - curve_fit failed")

multiprocessing 可以用来加速整个过程,但它仍然很慢。有没有办法以“矢量化”方式使用 curve_fit?

最佳答案

加快速度的一种方法是向 curve_fit 添加一些先验知识。

如果您知道参数的预期范围,并且不需要精确到第 100 个有效数字,则可以大大加快计算速度。

这是一个示例,您将在其中适合 param1param2:

t = np.array([0 1 2 3 4])
def func(t, param1, param2):
return param1*t + param2*np.exp(t)

for d in np.ndindex(data.shape[0]):
try:
popt, pcov = curve_fit(func, t, np.squeeze(data[d,:]), p0=[1000,100],
bounds=([min_param1, min_param2],[max_param1, max_param2]),
ftol=0.5, xtol=0.5)
except RuntimeError:
print("Error - curve_fit failed")

注意额外的关键参数 boundsftolxtol。您可以阅读有关它们的信息 here.

关于python - 如何在二维数组上加速 python curve_fit?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31070618/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com