numpy.searchsorted #
- 麻木的。searchsorted ( a , v , side = 'left' , sorter = None ) [来源] #
查找应插入元素以维持顺序的索引。
查找排序数组a中的索引,这样,如果v中的相应元素插入到索引之前,则a的顺序将被保留。
假设a已排序:
边
返回的索引i满足
左边
a[i-1] < v <= a[i]
正确的
a[i-1] <= v < a[i]
- 参数:
- 一维数组
输入数组。如果sorter为 None,则必须按升序排序,否则sorter必须是对其进行排序的索引数组。
- v类数组
要插入到.
- 边{'左','右'},可选
如果为“left”,则给出找到的第一个合适位置的索引。如果“正确”,则返回最后一个此类索引。如果没有合适的索引,则返回 0 或 N(其中 N 是a的长度)。
- 排序器1-D array_like,可选
可选的整数索引数组,将数组 a 按升序排序。它们通常是 argsort 的结果。
1.7.0 版本中的新增内容。
- 返回:
- 索引int 或 int 数组
与v形状相同的插入点数组,如果v是标量,则为整数。
笔记
二分查找用于查找所需的插入点。
从 NumPy 1.4.0 开始,
searchsorted
适用于包含nan
值的实数/复数数组。增强的排序顺序记录在 中sort
。bisect.bisect_left
该函数使用与内置 python (side='left'
) 和bisect.bisect_right
( ) 函数相同的算法side='right'
,也在v参数中进行向量化。例子
>>> np.searchsorted([1,2,3,4,5], 3) 2 >>> np.searchsorted([1,2,3,4,5], 3, side='right') 3 >>> np.searchsorted([1,2,3,4,5], [-10, 10, 2, 3]) array([0, 5, 1, 2])