为了计算MultDiGraph的聚类,我首先将MultDiGraph转换为有向图。然后,当我尝试计算聚类时,会收到此错误消息。
NetworkXNotImplemented: not implemented for multigraph type
有什么方法可以计算MultDiGraph的聚类吗?
答案 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。