2017-03-08 106 views
0

我有一个numpy的数组:蟒蛇numpy的香农熵阵列

A = [ 1.56 1.47 1.31 1.16 1.11 1.14 1.06 1.12 1.19 1.06 0.92 0.78 
     0.6 0.59 0.4 0.03 0.11 0.54 1.17 1.9 2.6 3.28 3.8 4.28 
     4.71 4.61 4.6 4.41 3.88 3.46 3.04 2.63 2.3 1.75 1.24 1.14 
     0.97 0.92 0.94 1. 1.15 1.33 1.37 1.48 1.53 1.45 1.32 1.08 
     1.06 0.98 0.69] 

我如何才能获得信息熵?

我已经看到了这样的,但不能确定:

​​

回答

3

主要有两种的情况,这是不是从你的样品,其中一个适用于这里明确。

(1)您的概率分布是离散的。那么你必须翻译似乎是相对频率的概率

pA = A/A.sum() 
Shannon2 = -np.sum(pA*np.log2(pA)) 

(2)你的概率分布是连续的。在这种情况下,您输入的值不必总和为1。假设输入是从整个空间规则采样,你会得到

pA = A/A.sum() 
Shannon2 = -np.sum(pA*np.log2(A)) 

但在这种情况下,公式实际上取决于抽样的细节和潜在的空间。

备注:示例中的axis=1将导致错误,因为您的输入是平坦的。省略它。

+0

非常感谢您的帮助!有用。 –