Я хочу получить индекс минимального значения массива 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 (поскольку NaN имеют значение позже в коде). Есть лучший способ это сделать?
Также возникает вопрос, каким должен быть результат, если все исходные значения a равны NaN? В моей реализации ответ равен 0