从python列表中查找近似模式
我有一个列表,其中的值类似于从python列表中查找近似模式,python,counter,itertools,mode,Python,Counter,Itertools,Mode,我有一个列表,其中的值类似于[62,62,65,67,68,69,3,3,3,1,1,30,30] 如果我使用这个值创建一个计数器,并取最大发生值,我得到它为3 但是,正如你们所能看到的,62-69的值彼此接近,我想得到这些值的平均值,作为最常出现的值。我们如何在python中实现这一点?您可以将数据分组到范围中,然后找到模式 例如,将数据按10的范围排列,我们得到 >>> l2 = [e//10 for e in l] >>> l2 [6, 6, 6, 6,
[62,62,65,67,68,69,3,3,3,1,1,30,30]
如果我使用这个值创建一个计数器
,并取最大发生值,我得到它为3
但是,正如你们所能看到的,62-69的值彼此接近,我想得到这些值的平均值,作为最常出现的值。我们如何在python中实现这一点?您可以将数据分组到范围中,然后找到模式 例如,将数据按10的范围排列,我们得到
>>> l2 = [e//10 for e in l]
>>> l2
[6, 6, 6, 6, 6, 6, 0, 0, 0, 0, 0, 3, 3]
模式是6
>>> Counter(l2).most_common(1)
[(6, 6)]
因此,原始数据的模式应该接近该范围的中间值,6*10+5=65也许您可以对数据进行聚类,然后查找最大的组?