scipy.stats.entropy

scipy.stats.entropy(pk, qk=None, base=None, axis=0)[源代码]

计算给定概率值的分布的熵。

如果只有概率 pk ,则熵的计算公式为 S = -sum(pk * log(pk), axis=axis)

如果 qk 不是None,则计算Kullback-Leibler散度 S = sum(pk * log(pk / qk), axis=axis)

这个例程会正常化的 pkqk 如果它们的总和不是1。

参数
pkarray_like

定义(离散)分布。沿每个轴-切片 pk ,元素 i 是事件(可能未标准化)的概率 i

qkARRAY_LIKE,可选

计算相对熵所依据的序列。应采用与相同的格式 pk

base浮动,可选

要使用的对数底,默认为 e (自然对数)。

轴:整型,可选

沿其计算熵的轴。默认值为0。

退货
S{FLOAT,ARRAY_LIKE}

计算出的熵。

示例

>>> from scipy.stats import entropy

伯努利审判不同p。公平硬币的结果是最不确定的:

>>> entropy([1/2, 1/2], base=2)
1.0

一枚有偏见的硬币的结果就不那么不确定了:

>>> entropy([9/10, 1/10], base=2)
0.46899559358928117

相对熵:

>>> entropy([1/2, 1/2], qk=[9/10, 1/10])
0.5108256237659907