scipy.ndimage.

histogram#

scipy.ndimage.histogram(input, min, max, bins, labels=None, index=None)[source]#

计算数组值的直方图,可以选择在标签处。

直方图计算数组中值在由 minmaxbins 确定的区间内的频率。 labelsindex 关键字可以将直方图的范围限制在数组中的指定子区域。

参数:
inputarray_like

用于计算直方图的数据。

min, maxint

直方图区间范围的最小值和最大值。

binsint

区间数量。

labelsarray_like, optional

input 中对象的标签。如果非 None,则必须与 input 形状相同。

indexint 或 int 序列,可选

用于计算直方图的标签或标签。如果为 None,则使用所有标签大于零的值。

返回:
histndarray

直方图计数。

示例

>>> import numpy as np
>>> a = np.array([[ 0.    ,  0.2146,  0.5962,  0.    ],
...               [ 0.    ,  0.7778,  0.    ,  0.    ],
...               [ 0.    ,  0.    ,  0.    ,  0.    ],
...               [ 0.    ,  0.    ,  0.7181,  0.2787],
...               [ 0.    ,  0.    ,  0.6573,  0.3094]])
>>> from scipy import ndimage
>>> ndimage.histogram(a, 0, 1, 10)
array([13,  0,  2,  1,  0,  1,  1,  2,  0,  0])

使用标签且无索引,会对非零元素进行计数

>>> lbl, nlbl = ndimage.label(a)
>>> ndimage.histogram(a, 0, 1, 10, lbl)
array([0, 0, 2, 1, 0, 1, 1, 2, 0, 0])

索引可用于仅计算特定对象的计数

>>> ndimage.histogram(a, 0, 1, 10, lbl, 2)
array([0, 0, 1, 1, 0, 0, 1, 1, 0, 0])