如何解决python:绕过零除
由于log
forx=0
为负无穷大,因此我只需要检查输入值是否为零并返回您想要的值即可:
def safe_ln(x):
if x <= 0:
return 0
return math.log(x)
:小编辑:您应该检查所有小于或等于0的值。
:np.log
当然是在numpy数组上计算的函数,对于单个值,您应该使用math.log
。这是上面的函数与numpy的外观:
def safe_ln(x, minval=0.0000000001):
return np.log(x.clip(min=minval))
解决方法
我有一个浮点数的大数据集。我遍历它们并np.log(x)
为它们中的每一个进行评估。我懂了
RuntimeWarning: divide by zero encountered in log
我想解决这个问题,如果发生此错误,则返回0。
我正在考虑定义一个新功能:
def safe_ln(x):
#returns: ln(x) but replaces -inf with 0
l = np.log(x)
#if l = -inf:
l = 0
return l
基本上,我需要一种测试输出是否正确的方法,-inf
但我不知道如何进行。感谢您的帮助!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。