Skip to content
Advertisement

RuntimeWarning: divide by zero encountered in log

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?

Advertisement

Answer

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.)

User contributions licensed under: CC BY-SA
5 People found this is helpful
Advertisement