gpt4 book ai didi

python - 跳过 numpy.apply_along_axis 内的 RuntimeError

转载 作者:行者123 更新时间:2023-12-01 05:19:42 24 4
gpt4 key购买 nike

我有一个通过以下算法拟合多个 x,y 数组的函数:

def f(func, data, init):
import scipy.optimize as opt
from numpy import apply_along_axis

fit = lambda d: opt.curve_fit(func, d[:cut], d[cut:], p0=[init, init], maxfev=100)[0]

return apply_along_axis(fit, 1, data)

因此,我将拟合应用于数据的每个第一轴 (shape=(50000,6)),但是,突然间,某些行中的拟合出现问题,导致 numpy.apply_along_axis 停止并返回 RuntimeError。因为我不关心错误的配合,所以我想跳过它们。

因此,是否可以在 apply_along_axis 函数内禁用这些 RuntimeError?

最佳答案

您可以简单地处理异常并在发生 RuntimeError 时返回 0。

编辑:处理现在处于适合状态。

def fit(d):
try:
return opt.curve_fit(func, d[:cut], d[cut:], p0=[init, init], maxfev=100)[0]
else:
return 0

但是,我不知道返回 0 是否是最好的选择。 apply_along_axis 期望函数返回数组或标量。由您决定要返回的内容。 curve_fit 在引发运行时错误时发送它的原因。它应该帮助您知道什么是最好的做法,甚至可能首先如何防止异常。您可能想将其发布到此处以帮助我们了解问题所在。

您可以在此处找到有关异常处理的更多信息:https://wiki.python.org/moin/HandlingExceptions

顺便说一句,你有最棒的头像。

关于python - 跳过 numpy.apply_along_axis 内的 RuntimeError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22639358/

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