输入X的概率分布、以及Y在X条件下的条件分布,计算平均互信息 I(X;Y)
import numpy as np
px = eval(input("请输入X的概率分布p(x):[p1,p2,...]"))
py_x = eval(input("请输入条件概率分布p(y|x):[P1,P2,...]"))
SUM = 0
# 计算联合概率密度pxy
func = lambda x,y:x*y
result = map(func,p,pyx)
pxy=list(result)
pxy2 = [pxy[i:i+len(px)] for i in range(0,len(pxy),len(px))]#将列表按x个数拆分
py = np.sum(pxy2, axis=0)#对子列表转置后求和
px_y = pxy/py
if sum(px) != 1 :
print("概率分布错误")
fo