Есть ли лучший способ заставить numpy.argmin () игнорировать значения NaN

Я хочу получить индекс минимального значения массива numpy, который содержит NaN, и я хочу, чтобы они игнорировались

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

если я запускаю argmin, он возвращает индекс первого NaN

>>> a.argmin()  
0  

Я заменяю NaN на Infs, а затем запускаю argmin

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

Моя дилемма заключается в следующем: Я бы предпочел не менять NaN на Infs, а потом возвращаться после того, как я закончу с argmin (так как NaNs имеют смысл позже в коде). Есть лучший способ сделать это?

Существует также вопрос о том, каким должен быть результат, если все исходные значенияa такое NaN? В моей реализации ответ 0

Ответы на вопрос(1)

Ваш ответ на вопрос