searchsorted使用

看代碼時發現searchsorted, 挺有意思,隨手記下來。
searchsorted是numpy數組的功能函數,要求序列是一個有序的,這樣返回的元素位置纔可能正確。

import numpy as np
a = np.arange(35)
a

array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
34])

  1. 查找一個不存在的數,找不到時left和right的結果相同
l = np.searchsorted(a, 3.1, side='left')
print("left searchsorted index: ", l)
r = np.searchsorted(a, 3.1, side='right')
print("right searchsorted index: ", r)
print("item: ", a[l:r])

left searchsorted index: 4
right searchsorted index: 4
item: []

  1. 查找一個序列中的數,找到時right的索引比left大1
l = np.searchsorted(a, 3, side='left')
print("left searchsorted index: ", l)
r = np.searchsorted(a, 3, side='right')
print("right searchsorted index: ", r)
print("item: ", a[l:r])

left searchsorted index: 3
right searchsorted index: 4
item: [3]

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章