对于一组数组,我有1个数字,我想在这个数组中找到左右两边各自最挨着这个数字的值

问题描述:

对于一组数组,我有1个数字,我想在这个数组中找到左右两边各自最挨着这个数字的值

解决思路:

如果您想在数组中找到一个特定数字左右两边最接近的值,您可以通过以下步骤实现:

  1. 确保数组是有序的(如果不是,首先对其进行排序)。
  2. 使用np.searchsorted(二分搜索)找到给定数字应该插入的位置。
  3. 根据这个位置,找到左右两边最接近的值。

以下是一个Python示例代码:

import numpy as np

# 假设这是您的数组,并且它已经排序
arr = np.array([1, 3, 5, 7, 9, 11, 13, 15])

# 给定的数字
target = 8

# 找到目标数字应该插入的位置
insert_index = np.searchsorted(arr, target)  # 插入位置所在index, eg: 4

# 找到左边最接近的值
left_value = arr[insert_index - 1] if insert_index > 0 else None

# 找到右边最接近的值
right_value = arr[insert_index] if insert_index < len(arr) else None

print("左边的值:", left_value)
print("右边的值:", right_value)
# 输出结果
左边的值: 7
右边的值: 9

你可能感兴趣的:(python)