用法:
dask.array.digitize(a, bins, right=False)
返回输入数组中每个值所属的 bin 的索引。
此文档字符串是从 numpy.digitize 复制的。
可能存在与 Dask 版本的一些不一致之处。
right
箱子的顺序
返回的索引
i
满足False
increasing
bins[i-1] <= x < bins[i]
True
increasing
bins[i-1] < x <= bins[i]
False
decreasing
bins[i-1] > x >= bins[i]
True
decreasing
bins[i-1] >= x > bins[i]
如果
x
中的值超出了bins
的范围,则酌情返回 0 或len(bins)
。- x:数组(在 Dask 中不支持)
要分箱的输入数组。在 NumPy 1.10.0 之前,这个数组必须是一维的,但现在可以有任何形状。
- bins:array_like
箱阵列。它必须是一维且单调的。
- right:布尔型,可选
指示间隔是否包括右侧或左侧 bin 边。默认行为是 (right==False),表示区间不包括右边。在这种情况下,左 bin 端是打开的,即 bins[i-1] <= x < bins[i] 是单调递增 bins 的默认行为。
- indices:整数数组
输出索引数组,形状与
x
相同。
- ValueError
如果
bins
不是单调的。- TypeError
如果输入的类型很复杂。
参数:
返回:
抛出:
注意:
如果
x
中的值超出 bin 范围,则尝试使用digitize
返回的索引来索引bins
将导致 IndexError。np.digitize
是根据np.searchsorted
实现的。这意味着二进制搜索用于对值进行分箱,与之前的线性搜索相比,对于更大数量的分箱,它的缩放效果要好得多。它还消除了输入数组是一维的要求。对于单调 _increasing_
bins
,以下是等价的:np.digitize(x, bins, right=True) np.searchsorted(bins, x, side='left')
请注意,由于参数的顺序是颠倒的,所以边也必须是颠倒的。
searchsorted
调用稍微快一些,因为它不进行任何单调性检查。也许更重要的是,它支持所有 dtypes。例子:
>>> x = np.array([0.2, 6.4, 3.0, 1.6]) >>> bins = np.array([0.0, 1.0, 2.5, 4.0, 10.0]) >>> inds = np.digitize(x, bins) >>> inds array([1, 4, 3, 2]) >>> for n in range(x.size): ... print(bins[inds[n]-1], "<=", x[n], "<", bins[inds[n]]) ... 0.0 <= 0.2 < 1.0 4.0 <= 6.4 < 10.0 2.5 <= 3.0 < 4.0 1.0 <= 1.6 < 2.5
>>> x = np.array([1.2, 10.0, 12.4, 15.5, 20.]) >>> bins = np.array([0, 5, 10, 15, 20]) >>> np.digitize(x,bins,right=True) array([1, 2, 3, 4, 4]) >>> np.digitize(x,bins,right=False) array([1, 3, 3, 4, 5])
相关用法
- Python dask.array.divmod用法及代码示例
- Python dask.array.diff用法及代码示例
- Python dask.array.diagonal用法及代码示例
- Python dask.array.diag用法及代码示例
- Python dask.array.dstack用法及代码示例
- Python dask.array.deg2rad用法及代码示例
- Python dask.array.degrees用法及代码示例
- Python dask.array.dot用法及代码示例
- Python dask.array.stats.ttest_ind用法及代码示例
- Python dask.array.ma.masked_values用法及代码示例
- Python dask.array.negative用法及代码示例
- Python dask.array.overlap.map_overlap用法及代码示例
- Python dask.array.stats.ttest_rel用法及代码示例
- Python dask.array.ma.average用法及代码示例
- Python dask.array.vstack用法及代码示例
- Python dask.array.isneginf用法及代码示例
- Python dask.array.ma.masked_array用法及代码示例
- Python dask.array.matmul用法及代码示例
- Python dask.array.random.weibull用法及代码示例
- Python dask.array.Array.compute_chunk_sizes用法及代码示例
注:本文由纯净天空筛选整理自dask.org大神的英文原创作品 dask.array.digitize。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。