Python中的 numpy.searchsorted()
numpy.searchsorted()
函数用于在排序数组 arr 中查找索引,这样,如果在索引之前插入元素,仍将保留 arr 的顺序。在这里,二进制搜索用于查找所需的插入索引。
Syntax : numpy.searchsorted(arr, num, side=’left’, sorter=None)
Parameters :
arr : [array_like] Input array. If sorter is None, then it must be sorted in ascending order, otherwise sorter must be an array of indices that sort it.
num : [array_like]The Values which we want to insert into arr.
side : [‘left’, ‘right’], optional.If ‘left’, the index of the first suitable location found is given. If ‘right’, return the last such index. If there is no suitable index, return either 0 or N (where N is the length of a).
num : [array_like, Optional] array of integer indices that sort array a into ascending order. They are typically the result of argsort.
Return : [indices], Array of insertion points with the same shape as num.
代码#1:工作
# Python program explaining
# searchsorted() function
import numpy as geek
# input array
in_arr = [2, 3, 4, 5, 6]
print ("Input array : ", in_arr)
# the number which we want to insert
num = 4
print("The number which we want to insert : ", num)
out_ind = geek.searchsorted(in_arr, num)
print ("Output indices to maintain sorted array : ", out_ind)
输出 :
Input array : [2, 3, 4, 5, 6]
The number which we want to insert : 4
Output indices to maintain sorted array : 2
代码#2:
# Python program explaining
# searchsorted() function
import numpy as geek
# input array
in_arr = [2, 3, 4, 5, 6]
print ("Input array : ", in_arr)
# the number which we want to insert
num = 4
print("The number which we want to insert : ", num)
out_ind = geek.searchsorted(in_arr, num, side ='right')
print ("Output indices to maintain sorted array : ", out_ind)
输出 :
Input array : [2, 3, 4, 5, 6]
The number which we want to insert : 4
Output indices to maintain sorted array : 3
代码#3:
# Python program explaining
# searchsorted() function
import numpy as geek
# input array
in_arr = [2, 3, 4, 5, 6]
print ("Input array : ", in_arr)
# the numbers which we want to insert
num = [4, 8, 0]
print("The number which we want to insert : ", num)
out_ind = geek.searchsorted(in_arr, num)
print ("Output indices to maintain sorted array : ", out_ind)
输出 :
Input array : [2, 3, 4, 5, 6]
The number which we want to insert : [4, 8, 0]
Output indices to maintain sorted array : [2 5 0]