В этом случае это не оценивает функцию в элементах ~ where.

ся, чтоnp.where Функция сначала оценивает все возможные результаты, а затем оценивает состояние. Это означает, что в моем случае он будет вычислять квадратный корень из -5, -4, -3, -2, -1, даже если он не будет использоваться позже.

Мой код работает и работает. Но моя проблема - предупреждение. Я избегал использовать цикл для оценки каждого элемента, потому что он будет работать намного медленнее, чемnp.where.

Итак, здесь я прошу

Есть ли способ сделатьnp.where сначала оценить состояние?Могу ли я отключить только это конкретное предупреждение? Как?Еще один лучший способ сделать это, если у вас есть лучшее предложение.

Вот только краткий пример кода, соответствующего моему реальному коду, который является гигантским. Но по сути имеет ту же проблему.

Входные данные:

import numpy as np

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

Выход:

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

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

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