在调用 scipy.stats.entropy
函数时,如果出现 -inf
的错误,很可能是因为你传入的概率分布数组中存在概率值为0的情况。这会导致计算信息熵的时候出现无限大的负数。为了避免这种情况,可以在计算之前将数组中的概率值都加上一个很小的数,例如1e-10。这样可以避免概率值为0的情况,同时也不会对计算结果造成太大的影响。
例如:
p = [0.5, 0.5]
entropy(p)# Output: -inf
p = [0.5, 0.5] + 1e-10
entropy(p) # Output: 0.6931471805599453