小能豆

在 numpy 数组中查找最近的值

javascript

如何在 numpy 数组中找到最接近的值?示例:

np.find_nearest(array, value)

阅读 20

收藏
2024-07-04

共1个答案

小能豆

在 NumPy 中,没有像np.find_nearest()查找数组中最近的值这样的直接函数。但是,您可以使用 NumPy 函数组合来实现此功能。以下是如何在 NumPy 数组中找到给定值最近的值:

方法:

  1. 计算差异:
  2. 计算数组中每个元素与目标值之间的绝对差。
  3. 找到最小差异:
  4. 确定绝对差异最小的元素的索引,该索引对应于最接近的值。
  5. 检索最近的值:
  6. 使用获取的索引从数组中获取实际的最近值。

示例实现:

下面是实现此目的的 Python 函数:

import numpy as np

def find_nearest(array, value):
    array = np.asarray(array)
    idx = (np.abs(array - value)).argmin()
    return array[idx]

# Example usage:
array = np.array([1, 2, 3, 4, 5])
value = 2.5
nearest_value = find_nearest(array, value)


nearest_value = find_nearest(array, value)

pr
print(f"Array: {array}")
print(f"Nearest value to {value}: {nearest_value}")

解释:

  • np.asarray(array):确保array是一个NumPy数组,允许我们使用NumPy操作。
  • np.abs(array - value):计算绝对差arrayvalue
  • .argmin():查找绝对差值数组中最小值的索引。
  • array[idx]array:从索引处检索idx与值最接近的元素value

No

  • 此方法假定您想要在数组中找到数值上最接近给定的元素value
  • 如果数组中有多个元素具有相同的最小差值value,则该函数返回它遇到的第一个元素
  • 由于使用了 NumPy 提供的矢量化操作,该函数即使对于大型数组也能有效运行。

通过对绝对差值使用argmin()函数,您可以有效地在 NumPy 数组中找到与任何给定值最接近的值。

2024-07-04