用Numpy寻找最近的值和数组中的索引
在这篇文章中,让我们来讨论用Numpy寻找最近的值和数组中的索引。我们将利用NumPy库提供的两个函数来计算最近的值和数组中的索引。这两个函数是numpy.abs()和numpy.argmin()。
示例
输入数组: [12 40 65 78 10 99 30]
最接近的值是: 85
最近的值: 78
最近的值的索引: 3
寻找最近的值和NumPy数组的索引的方法。
- 取一个数组,例如arr[]和一个元素,例如x,我们必须找到与之最接近的值。
- 调用numpy.abs(d)函数,将d作为数组元素与x之间的差值,并将值存储在不同的数组中,例如difference_array[]。
- 该元素,提供最小的差异将是最接近指定的值。
- 使用numpy.argmin(),获得difference_array[]中最小的元素的索引。在有多个最小值的情况下,将返回第一个出现的值。
- 打印最近的元素,以及它在给定数组中的索引。
示例 1:
要找到与指定值最接近的元素 85.我们从数组的每个元素中减去给定值,并将绝对值存储在另一个数组中。最小绝对差值将对应于与给定值最近的数值。因此,最小绝对差值的索引是3,原数组中索引3的元素是78。
import numpy as np
# array
arr = np.array([12, 40, 65, 78, 10, 99, 30])
print("Array is : ", arr)
# element to which nearest value is to be found
x = 85
print("Value to which nearest element is to be found: ", x)
# calculate the difference array
difference_array = np.absolute(arr-x)
# find the index of minimum element from the array
index = difference_array.argmin()
print("Nearest element to the given values is : ", arr[index])
print("Index of nearest value is : ", index)
输出:
示例 2:
在这个例子中,最小绝对差值将对应于最接近给定数字的值。因此,最小绝对差值的索引是2,原始数组中索引为2的元素是1,因此,1与给定的数字即2最接近。
import numpy as np
# array
arr = np.array([8, 7, 1, 5, 3, 4])
print("Array is : ", arr)
# element to which nearest value is to be found
x = 2
print("Value to which nearest element is to be found: ", x)
# calculate the difference array
difference_array = np.absolute(arr-x)
# find the index of minimum element from the array
index = difference_array.argmin()
print("Nearest element to the given values is : ", arr[index])
print("Index of nearest value is : ", index)
输出: