【发布时间】:2015-10-24 16:34:13
【问题描述】:
我有一个 my_values 数组,我正在尝试从中推断出一个 true_values 数组中最接近、更小的值。使用下面的 find_nearest 函数并不能完成我想要的。如何附加它以找到最近的较小值?
import numpy as np
true_values = np.array([4.5, 3.0, 2.4, 1.2, 0.1])
my_values = np.array([0.8, 2.1, 3.01, 8.0, 0.2, 2.6, 2.1, 3.99, 1.3])
def find_nearest(array,value):
idx = np.abs((array-value)).argmin()
return array[idx]
nearest = []
for i in my_values:
nearest.append(find_nearest(true_values,i))
print nearest
# [1.2, 2.4, 3.0, 4.5, 0.1, 2.4, 2.4, 4.5, 1.2]
但我希望输出是
nearest = [0.1, 1.2, 3.0, 4.5, 0.1, 2.4, 1.2, 3.0, 1.2]
这里的第一个答案:How to find nearest value that is greater in numpy array? 为最近的较大值完成此操作。也许可以更改此值以找到最接近的较小值?
【问题讨论】:
-
true_values是否总是排序?如果是这样,您可能需要查看searchsorted函数。 -
您链接的其他答案可以非常容易转换为找到最接近的较低值。或者,您可以通过坚持
array-value是否定的方式来修改已有的内容。
标签: python arrays python-2.7 numpy