Python NumPy np.searchsorted 函数详解:高效地在排序数组中执行二分搜索

np.searchsorted 是 NumPy 库中的一个强大函数,它允许你在已排序的数组中执行高效的二分搜索。这个函数对于确定将给定值插入排序数组以保持其排序顺序的索引位置非常有用。

np.searchsorted 函数语法pythonindices = np.searchsorted(a, values, side='left')

参数说明:

  • a: 已排序的一维数组。- values: 一个标量值或一维数组,表示要搜索的值。- side: 可选参数,指定搜索结果的位置。 - 'left' (默认): 返回的索引是插入值后,该值左侧的第一个位置。 - 'right': 返回的索引是插入值后,该值右侧的第一个位置。

np.searchsorted 返回值

np.searchsorted 函数返回一个整数数组,该数组表示每个搜索值在排序数组中的插入位置索引。如果搜索值已存在于数组中,则返回的索引将是保持数组排序的情况下插入该值的索引。

np.searchsorted 示例pythonimport numpy as np

a = np.array([1, 2, 4, 5, 7])values = np.array([0, 3, 6, 8])indices = np.searchsorted(a, values, side='left')

print(indices) # 输出 [0 2 4 5]

在这个例子中:

  • a 是我们的已排序数组。- values 是我们要搜索的值的数组。- np.searchsorted(a, values, side='left') 返回数组 indices,它包含每个值在 a 中的插入位置索引。

结果解释:

  • 0 应该插入到 a 中索引 0 处 (最开始)。- 3 应该插入到 a 中索引 2 处 (在 24 之间)。- 6 应该插入到 a 中索引 4 处 (在 57 之间)。- 8 应该插入到 a 中索引 5 处 (最后)。

结论

np.searchsorted 函数提供了一种在 Python 中高效执行二分搜索的强大方法,使你能够轻松确定将值插入排序数组的正确位置以保持其排序。

Python NumPy np.searchsorted 函数详解:高效地在排序数组中执行二分搜索

原文地址: https://www.cveoy.top/t/topic/RyT 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录