【问题标题】:How do I find the smallest difference between a given number and every element in a list in Python?如何找到给定数字与 Python 列表中每个元素之间的最小差异?
【发布时间】: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】:

你可以在绝对差上使用argmin来提取索引,然后可以用它来提取元素:

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

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

【讨论】:

  • 如何获得那个4的索引?
  • np.abs(a - 6).argmin() 应该给出最小差异的索引。
猜你喜欢
  • 2018-09-14
  • 2011-01-24
  • 1970-01-01
  • 1970-01-01
  • 2018-04-09
  • 1970-01-01
  • 2019-06-21
  • 2021-06-04
  • 1970-01-01
相关资源
最近更新 更多