【问题标题】:Finding element closest to mean in python list [duplicate]在python列表中查找最接近均值的元素[重复]
【发布时间】:2017-12-06 03:22:45
【问题描述】:

我有一些随机数(整数和浮点数)的列表

In[]:  list1
Out[]: [8.6, 9, 15, 20, 1]

我找到了列表的平均值/平均值:

m = reduce(lambda x, y: x + y, list1) / len(list1)

这会输出 10.72 。

现在,我必须从列表 list1 中找到最接近 avg 的数字。

在上面的例子中,从 list1 到 10.72 的关闭数是 9。

一种方法是找到列表中avg每个元素之间的差异,然后寻找最小差异,然后输出产生最小差异的那个元素,但我一直在寻找更清晰有效的方法,请给我推荐一个。

【问题讨论】:

  • 我猜:a = np.asarray(list1) 然后:a[np.abs(a - a.mean()).argmin()]?
  • 以下所有答案实际上都做了 OP 不想做的事情,但至少他们做得很清楚。
  • @cᴏʟᴅsᴘᴇᴇᴅ 什么答案? :P
  • 哇... wtf....
  • 使用数组版本:a = np.asarray(list1) 并使用 a.mean() 获取平均值,然后为其余工作获取链接的 dup。

标签: python list pandas numpy mean


【解决方案1】:

您可以使用built-in min() function 并找到与您的号码的最小距离

min(list1, key=lambda x:abs(x-m))

【讨论】:

    猜你喜欢
    • 2015-07-26
    • 2014-03-31
    • 1970-01-01
    • 2016-11-23
    • 2015-08-03
    • 1970-01-01
    • 2010-10-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多