I am trying to do a logarithm of zero in Python.
from math import log
log(0)
And this raises me an exception.
ValueError: math domain error
I understand that a log
of a negative number is mathematically undefined, and that's why Python's log
can raise this ValueError
exception. But why does it raise also the exception when calling it with a zero value? It should return a -inf
value, and I've seen that infinite numbers can be represented in Python (as in here).
Can I deal with this problem without personally treating it? I mean personally when doing something like this.
from math import log, inf
foo = ... # Random value.
if foo != 0: return log(foo)
else: return -inf
Actually Python is not wrong. The logarithm of zero is also undefined, which is because it's a limit, and it's -inf
only from the right, not from the left:
So, no, you have to deal with this yourself. That's wrong, but you can do that. something like this: log(x) if x != 0 else -inf
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With