Python 跳过numpy.apply_中沿_轴的运行时错误

Python 跳过numpy.apply_中沿_轴的运行时错误,python,numpy,error-handling,Python,Numpy,Error Handling,我有一个通过以下算法拟合多个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)

我有一个通过以下算法拟合多个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_沿_轴停止,并返回RuntimeError。因为我不在乎错配,所以我想跳过它们


因此,是否可以禁用沿轴应用函数中的那些运行时错误?

您可以简单地处理异常,并在发生
运行时错误时返回0

编辑:处理现在处于
fit
状态

def fit(d):
    try:
        return opt.curve_fit(func, d[:cut], d[cut:], p0=[init, init], maxfev=100)[0]
    else:
        return 0
但是,我不知道返回0是否是最好的做法<代码>沿_轴应用_
期望函数返回数组或标量。由您定义要返回的内容<代码>曲线拟合在引发运行时错误时发送运行时错误的原因。它应该帮助您知道什么是最好的做法,甚至可能是如何首先防止异常。你可能想把它贴在这里,帮助我们了解问题所在

您可以在此处找到有关异常处理的更多信息:


顺便说一句,你拥有最伟大的化身。

这是个好主意,但是异常处理应该在
fit
函数中完成,只跳过一些行,而不是整个数组。谢谢,@Fury,冒险时间是当今最伟大的动画系列。是的,moarningsun是对的,我需要处理曲线拟合或沿轴应用的异常。我只想跳过有问题的拟合。我编辑了我的答案,以提供一个新的
fit
函数。如上所述,我不知道返回0是否是最好的做法,但由于
apply\u沿_轴
期望一些东西,因此不能只返回
None