我正在使用numpy.log10来计算概率值数组的对数。数组中有一些零,我正在尝试使用

result = numpy.where(prob > 0.0000000001, numpy.log10(prob), -10)

但是,RuntimeWarning: divide by zero encountered in log10仍然出现,并且我确定这是引起警告的行。

尽管我的问题已解决,但我还是困惑为什么此警告一次又一次出现?

最佳答案

numpy.log10(prob)prob的所有元素(甚至是where未选择的元素)计算以10为底的对数。如果需要,可以在使用对数消除问题之前,用prob或一些伪值填充10**-10的零。 (不过,请确保您不使用虚拟值来计算prob > 0.0000000001。)

关于python - 运行时警告: divide by zero encountered in log,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21610198/

10-09 20:15