NetworkX计算MultDiGraph的群集

时间:2019-01-07 10:38:44

标签: python graph networkx

为了计算MultDiGraph的聚类,我首先将MultDiGraph转换为有向图。然后,当我尝试计算聚类时,会收到此错误消息。

NetworkXNotImplemented: not implemented for multigraph type

有什么方法可以计算MultDiGraph的聚类吗?

1 个答案:

答案 0 :(得分:0)

解决此问题的一种方法是将多重图转换为加权图,如question所示。假设您的多重图未加权:

import networkx as nx
# MultiGraph
M = nx.MultiDiGraph()
M.add_edge(1,2)
M.add_edge(1,2)
M.add_edge(2,3)
M.add_edge(1,3)
M.add_edge(1,4)

# create weighted graph from M
G = nx.DiGraph()
for u,v in M.edges():
    if G.has_edge(u,v):
        G[u][v]['weight'] += 1
    else:
        G.add_edge(u, v, weight=1)

clustering = nx.clustering(G,weight='weight')
clustering

请注意,这需要NetworkX 2.2。