微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python:绕过零除

如何解决python:绕过零除

由于logforx=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 举报,一经查实,本站将立刻删除。