引言
今天做仿真的时候遇到了一个问题,就是如何获取一组数据中最接近某个元素的值。这里特来记录一下。
正文
比如,这里有一个一维数组。
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
我们想要获取到这中间最接近 5.4
的值,可以采用如下代码:
import numpy as np
def find_nearest(array, value):
array = np.asarray(array)
idx = (np.abs(array - value)).argmin()
return array[idx]
arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
print(find_nearest(arr, 5.4))
"""
result:
5
"""
可以看到,我们成功获取到了想要的结果。
如果我们想要获取到最接近 5.4
的值在数组中对应的索引值,可以采用:
import numpy as np
def find_nearest(array, value):
array = np.asarray(array)
idx = (np.abs(array - value)).argmin()
return idx
arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
print(find_nearest(arr, 5.4))
"""
result:
4
"""
可以看到,我们也成功获取到了想要的结果。
至于,二维或者三维数组可以先展平为一维数组,或者使用循环结构,这里不再做展示。
如果大家觉得有用,就请点个赞吧~