接下来,简单的直方图是理解数据集的第一步。前面我们看到了Matplotlib的直方图函数。我们可以用一行代码画出基本的直方图。当然,我们首先需要将我们需要使用的包导入Pycharm:
Hist()函数有许多参数可以用来调整操作和显示;这是另一个更加个性化的直方图显示:
译者注:规格化参数已经过时,这里的代码已经做了相应的修改,使用了替代的密度参数。代码plt.hist(数据);将其替换为以下内容:
plt.hist文档中有更多关于个性化参数的信息。我们发现,histtype=stepfilled 和alpha参数的组合在比较和显示具有不同分布的数据集时非常有用:
如果您只需要计算直方图的值(即每个桶的数据点数)而不是显示图像,np.histogram()函数可以实现这个目标:
二维直方图和桶划分。就像我们可以用一维的数值对应的直线来划分桶一样,我们也可以用二维的数据对应的点来划分桶。在本节中,我们将介绍几种实现方法。首先,定义数据集,并从多元高斯分布中获得X和Y数组:
平均值=[0,0]
Plt.hexbin:六边形桶划分刚才的二维桶划分就是将每个桶沿着坐标轴划分成正方形。另一种自然的桶形是正六边形。针对这一需求,Matplotlib提供了plt.hexbin函数,该函数也以桶的形式显示在二维平面上,但每个桶(即图表上的每个数据单元)将是六边形的:
Plt.hexbin有很多有趣的参数,包括可以为每个点设置权重,将每个桶的输出数据结果更改为任意NumPy聚合结果(加权平均、加权标准差等。).
核密度估计另一种常用于计算多维数据密度的工具是核密度估计(KDE)。目前,我们只需要知道KDE被认为是一种可以用来填补数据空白和补充平滑变化数据的方法。并且在scipy.stats模块中实现了快速简单的KDE算法。这里有一个简单的例子来说明如何使用KDE并绘制相应的2D直方图:
平均值=[0,0]
#生成和处理数据,初始化KDE
#计算一般网格中Z的值
#将图表绘制成图像
KDE有一个平滑的长度,可以有效地调整细节和平滑度(一个例子是方差偏差权衡)。关于这方面的文献很多:高斯核密度估计gaussian_kde利用经验规则寻找输入数据附近的最优平滑长度。
其他KDE实现也可以在SciPy中找到,每一个都有它的优点和缺点;
转载请联系作者授权,否则将追究法律责任。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系QQ,我们将第一时间修改或删除,多谢。