在python列表中查找最接近平均值的元素

在python列表中查找最接近平均值的元素,python,list,pandas,numpy,mean,Python,List,Pandas,Numpy,Mean,我有一些随机数(整数和浮点数)的列表 我已经找到了列表的平均值: m = reduce(lambda x, y: x + y, list1) / len(list1) 这一产出为10.72 现在,我必须从列表list1中找到最接近avg的数字 在上面的示例中,从列表1到10.72的结束数是9 一种方法是找到列表中avg和每个元素之间的差异,然后寻找最小的差异,然后输出产生最小差异的元素,但我一直在寻找更简洁有效的方法,请给我推荐一种 您可以使用并找到与号码的最小距离 min(list1, ke

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

我已经找到了列表的平均值:

m = reduce(lambda x, y: x + y, list1) / len(list1)
这一产出为10.72

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

在上面的示例中,从列表1到10.72的结束数是9

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

您可以使用并找到与号码的最小距离

min(list1, key=lambda x:abs(x-m))
您可以使用并找到与号码的最小距离

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

我猜:
a=np.asarray(列表1)
然后:
a[np.abs(a-a.mean()).argmin()]
?下面的所有答案实际上都是OP不想做的,但至少他们做得很清楚。@cᴏʟᴅsᴘᴇᴇᴅ 什么答案哇。。。wtf…使用数组版本:
a=np.asarray(列表1)
并使用
a.mean()
获得该平均值,然后在其余工作中使用链接的dup。我猜:
a=np.asarray(列表1)
然后:
a[np.abs(a-a.mean()).argmin()
?下面的所有答案实际上都是OP不想做的,但至少他们做得很干脆ᴏʟᴅsᴘᴇᴇᴅ 什么答案哇。。。wtf…使用数组版本:
a=np.asarray(列表1)
并使用
a.mean()
获取该平均值,然后在其余工作中使用链接的dup。