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)
。这个例程会正常化的 pk 和 qk 如果它们的总和不是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