【发布时间】:2019-08-07 11:48:16
【问题描述】:
我有一个类似w=[0.854,0,0.66,0.245,0,0,0,0] 的数组,并且想对每个值应用 100/sqrt(x)。因为我不能除以 0,所以我正在使用这个技巧:
w=np.where(w==0,0,100/np.sqrt(w))
因为我没有除以 0,所以我不应该有任何警告。
那么为什么 numpy 一直在提高 RuntimeWarning: divide by zero encountered in true_divide 呢?
【问题讨论】:
-
警告不是问题,是吗?如果你想压制它,你可以先用
np.nan替换所有的零。 Another solution is to disable the warning locally or globally. -
也许
w=np.asarray([0 if w_i==0 else 100/np.sqrt(w_i) for w_i in w])更符合您的要求。 -
是的,这不是真正的问题,我只是想了解 :)
-
where是一个 python 函数。它的参数被评估并传入结果数组。
标签: python numpy where-clause