Gibt es eine bessere Möglichkeit, numpy.argmin () dazu zu bringen, NaN-Werte zu ignorieren?

Ich möchte den Index des min-Werts eines numpy-Arrays erhalten, das NaNs enthält, und ich möchte, dass sie ignoriert werden

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

wenn ich argmin starte, wird der Index des ersten NaN @ zurückgegeb

>>> a.argmin()  
0  

Ich ersetze NaNs durch Infs und starte dann argmin

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

Mein Dilemma ist das folgende: Ich möchte NaNs lieber nicht in Infs ändern und dann zurück, nachdem ich mit argmin fertig bin (da NaNs später im Code eine Bedeutung haben). Gibt es einen besseren Weg, dies zu tun?

Es ist auch eine Frage, was das Ergebnis sein soll, wenn alle ursprünglichen Werte vona sind NaN? In meiner Implementierung lautet die Antwort 0

Antworten auf die Frage(2)

Ihre Antwort auf die Frage