【发布时间】:2017-10-15 02:58:54
【问题描述】:
说我有:
[1, 2, 3, 4]
和整数
6
我想将6 与列表中的每个元素进行比较,并返回绝对值差异最小的元素,在本例中为4。有没有一种高效的Numpy 方式来做到这一点?
【问题讨论】:
-
FWIW,在纯 Python 中,你可以做到
min(lst, key=lambda u:abs(u-6))
标签: python list numpy subtraction
说我有:
[1, 2, 3, 4]
和整数
6
我想将6 与列表中的每个元素进行比较,并返回绝对值差异最小的元素,在本例中为4。有没有一种高效的Numpy 方式来做到这一点?
【问题讨论】:
min(lst, key=lambda u:abs(u-6))
标签: python list numpy subtraction
你可以在绝对差上使用argmin来提取索引,然后可以用它来提取元素:
a = np.array([1, 2, 3, 4])
a[np.abs(a - 6).argmin()]
# 4
【讨论】:
np.abs(a - 6).argmin() 应该给出最小差异的索引。