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
的块以检查a
和weights
之间的分块兼容性。如果weights
为None
,则可以传递一个dask.dataframe.Series
对象作为输入数据。- bins整数或标量序列,可选
需要提供一个可迭代对象来指定
bins
或bins
的数量和一个range
参数,因为在分块数组上计算min
和max
是一项必须显式执行的昂贵操作。如果 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 数组
直方图的值。有关可能的语义描述,请参见 density 和 weights。
- 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])