如何查找给定数字与Python中列表中每个元素之间的最小差异?

问题描述:

说我有:如何查找给定数字与Python中列表中每个元素之间的最小差异?

[1, 2, 3, 4]

和整数

6

我想与列表中的每个元素进行比较6和具有最小绝对值差返回元素这这种情况是4。有没有一种高效的Numpy办法呢?

+2

FWIW,在普通的Python,你可以做'分钟(LST,键=拉姆达u:abs(u-6))' –

您可以使用argmin上的绝对差值来提取指标,然后可以用来提取元素:

a = np.array([1, 2, 3, 4]) 

a[np.abs(a - 6).argmin()] 
# 4 
+0

如何获得那4的索引? – dirtysocks45

+0

'np.abs(a - 6).argmin()'应给出最小差异的指数。 – Psidom