numpy.searchsorted
numpy.searchsorted(a, v, side='left', sorter=None) [source]
查找应在其中插入元素以保持顺序的索引。
将索引查找到排序数组a中,这样,如果v中的相应元素在索引之前插入,则将保留a的顺序。
假设a已排序:
参数 : | a :1-D array_like 输入数组。 如果sorter为None,则必须按升序排序, 否则sorter必须是对其进行排序的索引数组。 v :array_like 要插入的值。 side : 如果为‘left’,则给出找到的第一个合适位置的索引。 如果为‘right’,则返回上一个这样的索引。 如果没有合适的索引,则返回0或N(其中N是a的长度)。 sorter :1-D array_like, 可选 整数索引的可选数组,将数组a升序排列。 它们通常是argsort的结果。 1.7.0版中的新功能。 |
返回值 : | indices :int类型的array 与v形状相同的插入点Array。 |
Notes
二分查找用于查找所需的插入点。
从NumPy 1.4.0起,searchsorted可与包含nan值的实/复杂数组一起使用。 增强的sort顺序已按顺序记录。
此函数使用与内置bisect.bisect_left(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])