ValueError:数学域错误。为什么我得到这个错误

时间:2019-05-09 02:59:17

标签: python

此功能正在运行,但我在项目中进行了一些修改,然后出现了数学域错误,并且未对其进行任何更改

def entropy(self,num,total):
    num2=total-num
    if num/total == 0 :
        return 0
    elif num2/total == 0:
        return 0
    else:
        entropoy_value=(-num/total*math.log(num/total,2)+(-num2/total*math.log(num2/total,2)))
        return entropoy_value

2 个答案:

答案 0 :(得分:0)

检查在numtotal中是否有负值,这将导致域错误:如果x <= 0,则math.log(x)

答案 1 :(得分:0)

因为您要记录一个负数的日志(即num2为负数)