¿Hay una mejor manera de hacer que numpy.argmin () ignore los valores de NaN

Quiero obtener el índice del valor mínimo de una matriz numpy que contiene NaNs y quiero que se ignoren

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

si ejecuto argmin, devuelve el índice del primer NaN

>>> a.argmin()  
0  

Sustituyo NaNs con Infs y luego ejecuto argmin

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

Mi dilema es el siguiente: Prefiero no cambiar NaNs a Infs y luego volver después de que haya terminado con argmin (ya que los NaN tienen un significado más adelante en el código). ¿Hay una mejor manera de hacer esto?

También hay una pregunta de cuál debería ser el resultado si todos los valores originales dea son NaN? En mi implementación la respuesta es 0

Respuestas a la pregunta(1)

Su respuesta a la pregunta