我正在使用函数scipy.optimize.curve_fit来拟合一些数据。如果拟合正常收敛,curve_fit
将返回两个数组popt
和pcov
,对于两个参数的函数,它们看起来像这样:
print popt
[ 2.97591488e-03 3.08947359e+01]
print pcov
[[ 2.44224139e-06 -1.67832708e-02]
[ -1.67832708e-02 1.16808802e+02]]
问题是,该函数偶尔会无法获得有效的pcov
,导致:
print pcov
inf
我需要能够判断pcov
何时是“有效”列表/浮点数组,以及何时inf
“无效”值。
我试过了:
if np.isfinite(np.array(pcov).any()):
print 'valid'
else:
print 'invalid'
但这并没有给出好的结果。
答案 0 :(得分:0)
没关系,只是11个小时以上编写代码的临时思维模块。正确的方法是:
if np.isfinite(pcov).all():
print 'valid'
else:
print 'invalid'