2014-09-09 6 views
0

Я использую функцию 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

Nevermind, только временный блок разума от 11 часов написания кода. Правильный путь:

if np.isfinite(pcov).all(): 
    print 'valid' 
else: 
    print 'invalid' 

 Смежные вопросы

  • Нет связанных вопросов^_^