python - 如何在 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 中具有最大值
解决方案
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()
终于可以用这个算法了,谢谢
推荐阅读
- java - 如何测试在构造函数中具有初始化的java类
- typescript - 为什么我们在泛型中使用字母 T,U
- visual-studio-code - 我正在尝试通过 VSCode 扩展(Jira 和 Bitbucket(Atlassian Labs))登录到 bitbucket。我的浏览器出现以下错误:
- image - 在图像保存结构中翻译语言
- reactjs - 导出变量 - React
- ckeditor4.x - 带有 CodeMirror 的 CKEditor 4 替换
为
有时返回 - c# - 使用 .NET/C# 创建 RTF 文档时法语字符的编码问题
- python - 如何打印由函数输出组成的列表
- unity3d - Ubuntu20.04无法安装Unity5
- jenkins - 如何在 Jenkins 流水线中捕获和格式化 Json 响应