dask.array.histogram

dask.array.histogram

dask.array.histogram(a, bins=None, range=None, normed=False, weights=None, density=None)[源代码]

被阻止的 numpy.histogram() 变体。

参数
adask.array.Array

输入数据;直方图是基于展平后的数组计算的。如果使用了 weights 参数,则会访问 a 的块以检查 aweights 之间的分块兼容性。如果 weightsNone,则可以传递一个 dask.dataframe.Series 对象作为输入数据。

bins整数或标量序列,可选

需要提供一个可迭代对象来指定 binsbins 的数量和一个 range 参数,因为在分块数组上计算 minmax 是一项必须显式执行的昂贵操作。如果 bins 是一个整数,它定义了给定范围内等宽的 bin 数量(默认是 10)。如果 bins 是一个序列,它定义了一个单调递增的 bin 边缘数组,包括最右边的边缘,允许非均匀的 bin 宽度。

范围(浮点数, 浮点数), 可选

箱子的下限和上限范围。如果没有提供,范围就是 (a.min(), a.max())。超出范围的值将被忽略。范围的第一个元素必须小于或等于第二个元素。range 也会影响自动箱子计算。虽然箱子宽度是根据 range 内的实际数据计算为最佳值,但箱子数量将填充整个范围,包括不包含数据的区域。

标准化bool, 可选

这等同于 density 参数,但对于不等宽的区间会产生错误的结果。不应使用。

权重dask.array.Array, 可选

一个与 a 具有相同块结构的 dask.array.Array 权重。a 中的每个值仅将其相关权重贡献给箱计数(而不是 1)。如果 density 为 True,则权重将被归一化,以使密度在范围内的积分保持为 1。

密度bool, 可选

如果 False,结果将包含每个箱子中的样本数量。如果 True,结果是箱子处的概率 密度 函数的值,归一化使得在整个范围内的 积分 为1。请注意,直方图值的总和将不等于1,除非选择单位宽度的箱子;它不是一个概率 质量 函数。如果给出,将覆盖 normed 关键字。如果 density 为 True,bins 不能是单个数字的延迟值。它必须是一个具体的数字,或者是一个(可能是延迟的)箱子边缘的数组/序列。

返回
histdask 数组

直方图的值。有关可能的语义描述,请参见 densityweights

bin_edgesdask 数组的 dtype 为浮点型

返回 bin 边缘 (length(hist)+1)

示例

使用箱数和范围:

>>> import dask.array as da
>>> import numpy as np
>>> x = da.from_array(np.arange(10000), chunks=10)
>>> h, bins = da.histogram(x, bins=10, range=[0, 10000])
>>> bins
array([    0.,  1000.,  2000.,  3000.,  4000.,  5000.,  6000.,  7000.,
        8000.,  9000., 10000.])
>>> h.compute()
array([1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000])

显式指定箱子:

>>> h, bins = da.histogram(x, bins=np.array([0, 5000, 10000]))
>>> bins
array([    0,  5000, 10000])
>>> h.compute()
array([5000, 5000])