Numpy "Where" função não pode evitar avaliar Sqrt (negativo)
Parece que onp.where
função @ avalia todos os resultados possíveis primeiro e depois avalia a condição posteriormente. Isso significa que, no meu caso, ele avaliará a raiz quadrada de -5, -4, -3, -2, -1, mesmo que não seja usado mais tard
Meu código é executado e funciona. Mas meu problema é o aviso. Evitei usar um loop para avaliar cada elemento, porque ele será muito mais lento quenp.where
.
Então, aqui estou perguntando
Existe alguma maneira de fazernp.where
avaliar a condição primeiro? Posso desligar apenas este aviso específico? Quão Outra maneira melhor de fazer isso, se você tiver uma sugestão melhoAqui apenas um pequeno exemplo de código correspondente ao meu código real, que é gigantesco. Mas essencialmente tem o mesmo problema.
Entrada
import numpy as np
c=np.arange(10)-5
d=np.where(c>=0, np.sqrt(c) ,c )
Saída
RuntimeWarning: invalid value encountered in sqrt
d=np.where(c>=0,np.sqrt(c),c)