python 特定份数的数据概率统计(原创)
使用numpy模块中的histogram函数模块
Histogram(a,bins=10,range=None,normed=False,weights=None)
其中,
a是保存待统计数据的数组,
bins指定统计的区间个数,即对统计范围的等分数。
range是一个长度为2的元组,表示统计范围的最小值和最大值,默认值为None,表示范围由 数据的范围决定,即(a.min(), a.max()).
当normed参数为False时,函数返回数组a中的数据在每个区间的个数,否则对个数进行正规化处理,使它等于每个区间的概宇密度。
weights参数和 bincount()的类似。
import numpy as np import matplotlib.pylab as plt #一个瑞丽分布模型 sampleNO = 80000 data0 = np.random.normal(0, 2, sampleNO) data1 = np.random.normal(0, 2, sampleNO) data = (data0**2+data1**2)**0.5 #分成100份进行统计,bins=1000 cnts, bins = np.histogram(data, bins=100, normed=False) #计算每份区间中值 bins = (bins[:-1] + bins[1:]) / 2 #数据归一化处理,当然这里也可以不归一化表示频数 cnts = cnts/sampleNO bins1 = bins/max(bins1) # 显示图例 plt.plot(bins, cnts) plt.legend() plt.show()
图谱显示:
探究未知是最大乐趣