Python numpy.searchsorted函数方法的使用

NumPy(Numerical Python的缩写)是一个开源的Python科学计算库。使用NumPy,就可以很自然地使用数组和矩阵。NumPy包含很多实用的数学函数,涵盖线性代数运算、傅里叶变换和随机数生成等功能。本文主要介绍一下NumPy中searchsorted方法的使用。

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’}, 可选

如果为‘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])
推荐阅读
cjavapy编程之路首页