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


Python NumPy searchsorted方法用法及代码示例


NumPy 的 searchsorted(~) 方法返回要添加到排序数组中的元素的索引。

参数

1. a | array_like

输入数组。如果未提供sorter,则a 必须按升序排序。

2. v | array_like

如果要将这些值添加到已排序的输入数组中,则要查找其索引的值。

3. side | string | optional

两个可能的值如下:

参数值

意义

"left"

如果值重复,则返回第一个合适的索引

"right"

如果值重复,则返回最后一个合适的索引

默认情况下,side="left"

4. sorter | array-like | optional

如果输入数组 a 不是按升序排序,那么我们必须提供一个一维数组来保存使 a 按升序排序的索引。

返回值

NumPy 数组,其中包含要添加到排序数组中的元素索引。

例子

搜索按 side=left 排序

要查找值 7(如果它已添加到数组 [6,7,8,9] 中)的索引:

np.searchsorted([6,7,8,9], 7)   # or with parameter side=left



1

这里,返回1,因为当值7插入到数组中时,它将被放置在第一个索引中(即其重复项的左侧)。

此外,重要的是我们的输入数组按升序排序,因为我们没有提供 sorter 参数。

搜索按 side=right 排序

要获取值的正确索引:

np.searchsorted([6,7,8,9], 7, side="right")



2

这里,返回2,因为当值7插入到数组中时,它将被放置在第二个索引中(即其重复项的右侧)。

传入值数组

我们还可以传递一个值数组,而不是只传递一个标量,如下所示:

np.searchsorted([2,3,4,5], [0,3,6])



array([0, 1, 4])

请注意如何逐一考虑每个元素 - 这就是值 6 的索引是 4 的原因。

传入分拣机

方法 searchsorted(~) 要求输入数组按升序排序。如果不是,我们需要传入一个一维数组,该数组按升序对输入数组进行排序,如下所示:

np.searchsorted([2,1,3,4], 2, sorter=[1,0,2,3])



1

相关用法


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