单项选择题
对于给定的下面的一段计算香农信息熵的python程序(已知x1和x2的概率分布),则其输出结果应该为下面的哪个选项?
import numpy as np
def calc_ent(x):
x_value_list = set([x[i] for i in range(x.shape[0])])
ent = 0.0
for x_value in x_value_list:
p = float(x[x == x_value].shape[0]) / x.shape[0]#概率
logp = np.log2(p)
ent -= p * logp
return ent
x1=np.array([0.25, 0.25, 0.25, 0.25])
x2=np.array([0.1, 0.2, 0.3, 0.4])
print ("entropy of x1:", calc_ent(x1))
print ("entropy of x2: ", calc_ent(x2))
A.entropy of x1: 2.0; entropy of x2: 0.0
B.entropy of x1: 0.0; entropy of x2: 2.0
C.entropy of x1: 1.0; entropy of x2: 2.0
D.entropy of x1: 2.0; entropy of x2: 2.0