當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。