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是标量,则为整数。

也可以看看

sort

返回数组的排序副本。

histogram

从一维数据生成直方图。

笔记

二分查找用于查找所需的插入点。

从 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])