二元信息熵 python實現、繪圖

import matplotlib.pyplot as plt
from math import log
import numpy as np
#計算二元信息熵
def entropy(props, base=2):
    sum = 0
    for prop in props:
        sum += prop * log(prop, base)
    return sum * -1

#構造數據
x = np.arange(0.01,1,0.01)
props = []
for i in x:
    props.append([i, 1-i])

y = [entropy(i) for i in props]


plt.plot(x,y)
plt.xlabel("p(x)")
plt.ylabel("H(x)")
plt.show()

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章