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