当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python numpy searchsorted用法及代码示例


本文简要介绍 python 语言中 numpy.searchsorted 的用法。

用法:

numpy.searchsorted(a, v, side='left', sorter=None)

查找应插入元素以保持顺序的索引。

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

假设 a 已排序:

返回的索引 i 满足

left

a[i-1] < v <= a[i]

right

a[i-1] <= v < a[i]

参数

a 一维 数组

输入数组。如果 sorter 为 None,则它必须按升序排序,否则 sorter 必须是对其进行排序的索引数组。

v array_like

要插入到 a 中的值。

side {‘left’, ‘right’},可选

如果‘left’,则给出找到的第一个合适位置的索引。如果‘right’,返回最后一个这样的索引。如果没有合适的索引,则返回 0 或 N(其中 N 是 a 的长度)。

sorter 一维数组,可选

可选的整数索引数组,将数组 a 排序为升序。它们通常是 argsort 的结果。

返回

indices int 或整数数组

与 v 形状相同的插入点数组,如果 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])

相关用法


注:本文由纯净天空筛选整理自numpy.org大神的英文原创作品 numpy.searchsorted。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。