在python中将浮点数据聚集到合适的存储桶中

在python中将浮点数据聚集到合适的存储桶中,python,cluster-analysis,Python,Cluster Analysis,我有一个csv文件,它有数千个按升序排列的浮点值。我想把这些值组合成合适的簇 for example : 0.001 0.002 0.013 0.1 0.101 0.12 0.123 0.112 0.113 0.2 所以集群应该是这样的 0 - 0.1 with count 4 0.1 - 0.2 with count 6 如何在python中自动执行此集群任务?我需要保留一些初始参数吗?在这方面我没有线索。请帮忙 您可以bisect.bisect\u left找到元素在具有正确增量的键列表

我有一个csv文件,它有数千个按升序排列的浮点值。我想把这些值组合成合适的簇

for example :
0.001
0.002
0.013
0.1
0.101
0.12
0.123
0.112
0.113
0.2
所以集群应该是这样的

0 - 0.1 with count 4
0.1 - 0.2 with count 6

如何在python中自动执行此集群任务?我需要保留一些初始参数吗?在这方面我没有线索。请帮忙

您可以
bisect.bisect\u left
找到元素在具有正确增量的键列表中的位置,然后简单地使用该索引从键列表中获取元素,并使用dict增加其计数

from bisect import bisect_left
with open("test.txt") as f:
    keys = [0.1, 0.2]
    d = dict.fromkeys(keys, 0)
    for line in f:
        ind = bisect_left(keys, float(line))
        d[keys[ind]] += 1
print(d)
{0.1: 4, 0.2: 6}
另一种方法是以适当的数量取整:

with open("test.txt") as f:
    keys = [0.1, 0.2, 0.3, 0.4, 0.5, 0.6]
    d = dict.fromkeys(keys, 0)
    for flt in map(float, f):
        k = round(flt + .05, 1) if flt > .05 else .1
        if flt not in d:
            d[k] += 1
        else:
            d[flt] += 1

你试过这个吗。。。这些值有多高?@PadraicCunningham:很抱歉回复得太晚,它是动态的,值可以达到任何级别,但有些范围会达到,比如0.1、0.2,但我想通过某种方式确定这些范围……)但有了你的回答,我会试着讲述我想要的。。。非常感谢您的早期回复。。如果您仍然可以告诉我我想要的是否可能,那么请务必让我知道……)@POOJAGUPTA,这真的取决于增量是多少,比如说我们得到1.0,10.0或100.0,之后的步骤应该是什么?