RuntimeWarning: divide by zero encountered in log

numpy, python

Solution

`numpy.log10(prob)` calculates the base 10 logarithm for all elements of `prob`, even the ones that aren't selected by the `where`. If you want, you can fill the zeros of `prob` with `10**-10` or some dummy value before taking the logarithm to get rid of the problem. (Make sure you don't compute `prob > 0.0000000001` with dummy values, though.)

Problem

I am using numpy.log10 to calculate the log of an array of probability values. There are some zeros in the array, and I am trying to get around it using ``` result = numpy.where(prob > 0.0000000001, numpy.log10(prob), -10) ``` However, `RuntimeWarning: divide by zero encountered in log10` still appeared and I am sure it is this line caused the warning. Although my problem is solved, I am confused why this warning appeared again and again?

Original source

Related problems