Existe uma maneira melhor de fazer numpy.argmin () ignorar valores NaN

Eu quero obter o índice do valor mínimo de uma matriz numpy que contém NaNs e quero que eles sejam ignorados

>>> a = array([ nan,   2.5,   3.,  nan,   4.,   5.])  
>>> a  
array([ NaN,  2.5,  3. ,  NaN,  4. ,  5. ])  

se eu executar argmin, ele retornará o índice do primeiro NaN

>>> a.argmin()  
0  

Substituo NaNs por Infs e, em seguida, corro argmin

>>> a[isnan(a)] = Inf  
>>> a  
array([ Inf,  2.5,  3. ,  Inf,  4. ,  5. ])  
>>> a.argmin()  
1  

Meu dilema é o seguinte: Prefiro não alterar NaNs para Infs e depois voltar depois que terminar o argmin (já que os NaNs têm um significado mais adiante no código). Existe uma maneira melhor de fazer isso?

Há também uma questão de qual deveria ser o resultado se todos os valores originais dea são NaN? Na minha implementação, a resposta é 0

questionAnswers(1)

yourAnswerToTheQuestion