2017-03-08 104 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

非常感謝您的幫助!有用。 –