给定一组数字是否有可用的算法或方法将它们分成不同的组并计算它们?
类似的东西:
class AssertRaises(object):
def __init__(self, exc_type):
self.exc_type = exc_type
def __enter__(self):
pass
def __exit__(self, exc_type, exc_val, exc_tb):
if exc_type == self.exc_type:
raise AssertionError
return True
说组的数量应该是最小2到最大10。 如何做到这一点?
答案 0 :(得分:0)
您需要某种群集。数量有限的2..10组(群集)k-means看起来不错。
你肯定需要一些取决于数字值的指标(因为简单的差异不适合将1,2,3和100,200分成不同的集群)。可能是,值对数?
答案 1 :(得分:0)
这是机器学习有用的问题。 对于这个问题,这是一个简单而好的解决方案:Clustering values by their proximity in python (machine learning?)。 它使用numpy和sklearn,需要先安装。
答案 2 :(得分:0)
您要求的任务有点含糊不清,因为分组标准没有明确定义。
鉴于集合中至少有两个不同的数字,我建议采用以下方法:
当然,你以这种方式获得的群体或多或少是任意的。如果你想避免这样分组:
input : [1,1,2,3,4,5,6,7,8,9,10,11,15,75,80]
output : 1 - 8 : 9
9 - 15 : 4
75 - 80 : 2
那么你应该: