dask.array.searchsorted

dask.array.searchsorted

dask.array.searchsorted(a, v, side='left', sorter=None)[源代码]

查找元素应插入以保持顺序的索引位置。

此文档字符串是从 numpy.searchsorted 复制而来的。

Dask 版本可能存在一些不一致性。

找到排序数组 a 中的索引,使得如果 v 中对应的元素插入到这些索引之前,a 的顺序将被保留。

假设 a 已排序:

side

返回的索引 i 满足

a[i-1] < v <= a[i]

正确

a[i-1] <= v < a[i]

参数
a1-D array_like

输入数组。如果 sorter 为 None,则必须按升序排序,否则 sorter 必须是一个排序索引的数组。

varray_like

插入到 a 中的值。

侧面{‘left’, ‘right’}, 可选

如果为 ‘left’,则返回找到的第一个合适位置的索引。如果为 ‘right’,则返回最后一个这样的索引。如果没有合适的索引,则返回 0 或 N(其中 N 是 a 的长度)。

排序器1-D 类数组, 可选

可选的整数索引数组,将数组 a 按升序排序。它们通常是 argsort 的结果。

1.7.0 新版功能.

返回
索引整数或整数数组

插入点数组,形状与 v 相同,如果 v 是标量,则为整数。

参见

sort

返回数组的排序副本。

histogram

从一维数据生成直方图。

注释

二分搜索用于找到所需的插入点。

从 NumPy 1.4.0 开始,searchsorted 可以处理包含 nan 值的实数/复数数组。增强的排序顺序在 sort 中进行了文档化。

此函数使用与内置 Python bisect.bisect_left`(``side=’left’`)和 bisect.bisect_right`(``side=’right’`)函数相同的算法,该算法在 v 参数中也进行了向量化。

示例

>>> import numpy as np  
>>> np.searchsorted([11,12,13,14,15], 13)  
2
>>> np.searchsorted([11,12,13,14,15], 13, side='right')  
3
>>> np.searchsorted([11,12,13,14,15], [-10, 20, 12, 13])  
array([0, 5, 1, 2])