我有一個列表:蟒集團整數的列表,就近值
d = [23,67,110,25,69,24,102,109]
我怎樣才能與動態間隙組最近的值,並創建這樣一個元組,什麼是最快的方法是什麼? :
[(23,24,25),(67,69),(102,109,110)]
我有一個列表:蟒集團整數的列表,就近值
d = [23,67,110,25,69,24,102,109]
我怎樣才能與動態間隙組最近的值,並創建這樣一個元組,什麼是最快的方法是什麼? :
[(23,24,25),(67,69),(102,109,110)]
d = [23,67,110,25,69,24,102,109]
d.sort()
diff = [y - x for x, y in zip(*[iter(d)] * 2)]
avg = sum(diff)/len(diff)
m = [[d[0]]]
for x in d[1:]:
if x - m[-1][0] < avg:
m[-1].append(x)
else:
m.append([x])
print m
## [[23, 24, 25], [67, 69], [102, 109, 110]]
拳我們計算時序元件,然後一起組元件,其差小於平均值之間的平均差值。
k均值聚類。 – 2012-04-04 18:12:02
你如何定義「最近值」?在我看來,102根本不接近109,屬於它自己的組。你有一個客觀的方法來確定分組嗎? – Kevin 2012-04-04 18:13:07
我同意凱文。這一切都非常arbritrary - 這很好 - 你只需要更具體地定義你想如何分割數字,以及你如何不喜歡他們分裂。 – 2012-04-04 18:14:27