首页 > 解决方案 > 如何在 python 中绘制日志?

问题描述

我有一个这样的函数,称为 entropy H(y)=(summation over y)-p(y)*log2(p(y)

我想为 0 和 1 之间的值绘制它,并且在 p(y)=0.5 中具有最大值,它等于 1。
我无法用 plt.plot 绘制它,我怎么能做到这一点?

import numpy as np
import matplotlib.pyplot as plt

h_y=[]
p_y=np.array([0,0.5,1])
for i in range(0,2):
   a=np.sum(-np.nan_to_num(p_y[i]*np.log2(p_y[i])))
   h_y=a.append(a)
plt.plot(h_y)

结果将是对数,在 p_y=0.5 中具有最大值,在 p_y=0,1 中具有最大值

标签: pythonmatplotlib

解决方案


import numpy as np
import matplotlib.pyplot as plt


x = np.arange(0., 1, 0.001)
y = -x*np.log2(x) - (1-x)*np.log2(1-x)

plt.scatter(x, y)
plt.show()

终于可以用这个算法了,谢谢


推荐阅读