def get_clusters(C):
nonassigned = list(range(len(C)))
clusters = []
while nonassigned:
queue = set([nonassigned[0]])
clusters.append([])
while queue:
node = queue.pop()
clusters[-1].append(node)
nonassigned.remove(node)
queue.update(n for n in np.flatnonzero(C[node]) if n in nonassigned)
C = np.zeros_like(C)
for cluster in clusters:
for i in cluster:
C[i, cluster] = True
return clusters, C
评论列表
文章目录