numpy searchsorted 用法及代码示例

用法:
numpy.searchsorted(a, v, side='left', sorter=None)
查找应在其中插入元素以保持顺序的索引。

将索引查找到排序数组a中,这样,如果v中的相应元素在索引之前插入,则将保留a的顺序。

假设a已排序:

iCKyHG

描述
参数 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: : 整数数组

与v形状相同的插入点阵列。

注意:

二进制搜索用于查找所需的插入点。

从NumPy 1.4.0开始searchsorted适用于包含以下内容的实/复杂数组nan值。增强的排序顺序记录在sort

此函数使用与内置python相同的算法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])

发表回复

登录... 后才能评论