numpy.直方图#
- 麻木的。直方图( a, bins = 10,范围= None,密度= None,权重= None ) [来源] #
计算数据集的直方图。
- 参数:
- 类似数组
输入数据。直方图是在展平的数组上计算的。
- bins int 或标量序列或 str,可选
如果bins是 int,则它定义给定范围内等宽 bin 的数量(默认为 10)。如果bins是一个序列,则它定义一个单调递增的 bin 边缘数组,包括最右边缘,从而允许不均匀的 bin 宽度。
1.11.0 版本中的新增内容。
如果bins是字符串,则它定义用于计算最佳 bin 宽度的方法,如 所定义
histogram_bin_edges
。- 范围(浮动、浮动),可选
垃圾箱的下限和上限范围。如果未提供,范围只是。超出范围的值将被忽略。范围的第一个元素必须小于或等于第二个元素。范围也会影响自动 bin 计算。虽然 bin 宽度根据range内的实际数据计算为最佳,但 bin 计数将填充整个范围,包括不包含数据的部分。
(a.min(), a.max())
- 权重数组,可选
权重数组,形状与相同。a中的每个值 仅对 bin 计数贡献其相关权重(而不是 1)。如果密度为 True,则对权重进行归一化,以便密度在该范围内的积分保持为 1。
- 密度bool,可选
如果
False
,结果将包含每个箱中的样本数。如果,则结果是bin 处概率密度True
函数的值,经过标准化,使得范围内的积分为 1。请注意,除非选择单位宽度的 bin,否则直方图值的总和将不等于 1;它不是概率质量函数。
- 返回:
- 直方图数组
直方图的值。有关可能语义的描述,请参阅密度和权重。
- bin_edges dtype float 数组
返回 bin 边缘
(length(hist)+1)
。
笔记
除了最后一个(最右边的)垃圾箱外,所有垃圾箱都是半开的。换句话说,如果bin是:
[1, 2, 3, 4]
那么第一个 bin 是(包括 1,但不包括 2),第二个 bin 是。然而,最后一个 bin 是,其中 包括4。
[1, 2)
[2, 3)
[3, 4]
例子
>>> np.histogram([1, 2, 1], bins=[0, 1, 2, 3]) (array([0, 2, 1]), array([0, 1, 2, 3])) >>> np.histogram(np.arange(4), bins=np.arange(5), density=True) (array([0.25, 0.25, 0.25, 0.25]), array([0, 1, 2, 3, 4])) >>> np.histogram([[1, 2, 1], [1, 0, 1]], bins=[0,1,2,3]) (array([1, 4, 1]), array([0, 1, 2, 3]))
>>> a = np.arange(5) >>> hist, bin_edges = np.histogram(a, density=True) >>> hist array([0.5, 0. , 0.5, 0. , 0. , 0.5, 0. , 0.5, 0. , 0.5]) >>> hist.sum() 2.4999999999999996 >>> np.sum(hist * np.diff(bin_edges)) 1.0
1.11.0 版本中的新增内容。
自动分箱选择方法示例,使用 2000 个点的 2 个峰值随机数据:
>>> import matplotlib.pyplot as plt >>> rng = np.random.RandomState(10) # deterministic random data >>> a = np.hstack((rng.normal(size=1000), ... rng.normal(loc=5, scale=2, size=1000))) >>> _ = plt.hist(a, bins='auto') # arguments are passed to np.histogram >>> plt.title("Histogram with 'auto' bins") Text(0.5, 1.0, "Histogram with 'auto' bins") >>> plt.show()