Python Numpy中是否有和Matlab一样的histogram函数?
Python Numpy中是否有和Matlab一样的histogram函数?
坑
1、python
y,x = np.histogram(arrCount, bins=np.linspace(0, 100, 20))
2、python
bins = 100 #设置成100bin # px = np.histogram(x, bins=bins,range=(sigMin, sigMax))[0]/length #bins代表划分后的最小单元个数,可以理解成信号的分辨率;range代表信号的范围 # bins代表划分后的最小单元个数,可以理解成信号的分辨率; # 如果加上range之后,结果和matlab的pxp = histogram(x, bins);px = pxp.Values/length; 差异很大,所以先不加range了 px = np.histogram(x, bins=bins)[0] / length hx = - np.sum(px * np.log(px+1e-8)) #随机变量X的边缘熵 # py = np.histogram(y, bins=bins,range=(sigMin, sigMax))[0]/length py = np.histogram(y, bins=bins)[0] / length #不加range使得结果跟matlab尽可能地相近; hy = - np.sum(py * np.log(py+1e-8)) #pxy = np.histogram2d(x,y,bins=bins,range=[[sigMin, sigMax], [sigMin, sigMax]])[0]/length pxy = np.histogram2d(x, y, bins=bins )[0] / length hxy = - np.sum(pxy * np.log(pxy+1e-8))
3、matlab
function ixy = calMIMatlab(x,y)
length = size(x,2);
bins = 100 ;
pxp = histogram(x, bins);
px = pxp.Values/length;
hx = - sum(px .* log(px+1e-8));
pyp = histogram(y,bins);
py1 = pyp.Values/length;
hy = - sum(py1 .* log(py1+1e-8));
pxyp = histogram2(x,y,bins);
pxy = pxyp.Values/length;
hxy = - sum(sum(pxy .* log(pxy+1e-8)));
ixy = hx + hy - hxy;
end
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?