使用python分隔DBSCAN中每个群集的坐标(3D坐标)

时间:2019-05-14 16:13:14

标签: python-3.x

我正在使用 DBSCAN (使用python)对某些3D坐标进行聚类。我能够将其群集到不同的群集中。但是现在我想将属于每个群集的坐标分开,并将这些坐标打印到不同的文本文件中。谁能帮我怎么做。

我已经尝试将聚类到单独的聚类中并获取每个聚类的坐标。完全不同的代码也可以

由于某些问题,我无法发布代码。但是我将发布我以前制作的命令。 (这个是2D)

from sklearn.cluster import DBSCAN
import numpy as np
data = np.random.rand(500,3)

db = DBSCAN(eps=0.12, min_samples=1).fit(data)
labels = db.labels_
from collections import Counter
Counter(labels)

1 个答案:

答案 0 :(得分:0)

要将示例(numpy.array)存储在.txt文件中,您应该首先根据集群分配将示例划分为多个分区,然后保存生成的分区。

from collections import defaultdict

clusters = defaultdict(list)

for i,c in enumerate(db.labels_):
    clusters[c].append(data[i])

for k,v in clusters.items():
    np.savetxt('cluster{}.txt'.format(k), v, delimiter=",", fmt='%s')

您将获得68个txt文件,每个文件包含数据集中一个或多个样本的坐标。