是否有一种numpy-thonic方式,例如函数,来查找数组中最接近的值?
例:
np.find_nearest( array, value )
Run Code Online (Sandbox Code Playgroud) 给定一个整数列表,我想找到哪个数字最接近我输入的数字:
>>> myList = [4, 1, 88, 44, 3]
>>> myNumber = 5
>>> takeClosest(myList, myNumber)
...
4
Run Code Online (Sandbox Code Playgroud)
有没有快速的方法来做到这一点?
作为一个例子,我的列表是:
[25.75443, 26.7803, 25.79099, 24.17642, 24.3526, 22.79056, 20.84866, 19.49222, 18.38086, 18.0358, 16.57819, 15.71255, 14.79059, 13.64154, 13.09409, 12.18347, 11.33447, 10.32184, 9.544922, 8.813385, 8.181152, 6.983734, 6.048035, 5.505096, 4.65799]
Run Code Online (Sandbox Code Playgroud)
我正在寻找最接近的值的索引11.5.我尝试了其他方法,如二进制搜索,bisect_left但它们不起作用.
我无法对此数组进行排序,因为该值的索引将用于类似的数组以获取该索引处的值.
myArr = array([4,1,88,44,3])
myNumber = 25
FindClosest(myArr, myNumber)
...
4, 44
Run Code Online (Sandbox Code Playgroud)
有没有办法在列表中找到最接近的2个数字给一个给定的数字,使得其中一个更高而另一个更低?
我可以找到最接近的号码:
min(myArr.tolist(), key=lambda x:abs(x-myNumber))
Run Code Online (Sandbox Code Playgroud)