a función @Numpy "Where" no puede evitar evaluar Sqrt (negativo)

Parece que elnp.wherea función @ evalúa todos los resultados posibles primero, luego evalúa la condición más tarde. Esto significa que, en mi caso, evaluará la raíz cuadrada de -5, -4, -3, -2, -1 a pesar de que no se utilizará más adelante.

Mi código se ejecuta y funciona. Pero mi problema es la advertencia. Evité usar un bucle para evaluar cada elemento, porque funcionará mucho más lento quenp.where.

Entonces, aquí, estoy preguntando

¿Hay alguna forma de hacernp.where evaluar la condición primero? ¿Puedo desactivar solo esta advertencia específica? ¿Cómo Otra forma mejor de hacerlo si tiene una mejor sugerencia.

Aquí solo un breve código de ejemplo correspondiente a mi código real que es gigantesco. Pero esencialmente tiene el mismo problema.

Entrada

import numpy as np

c=np.arange(10)-5
d=np.where(c>=0, np.sqrt(c) ,c )

Salida

RuntimeWarning: invalid value encountered in sqrt
d=np.where(c>=0,np.sqrt(c),c)

Respuestas a la pregunta(4)

Su respuesta a la pregunta