我有一个igraph网络g,其中所有边的权重都是1,并且所有顶点都属于5个组(用顶点参数称为“group”)。
现在我想制作一个新图G,其中g的顶点根据它们所属的组折叠,收缩。这样G的顶点数减少到g中不同组的数量,这些新的折叠顶点之间的边的权重等于g中相同组之间的边的总和数。
我相信我可以使用contract_vertices()。但是边缘的重量不会被添加,我猜...无论如何,有没有办法在igraph中实现这一点?
谢谢!
答案 0 :(得分:1)
使用contract_vertices()
后跟simplify()
,可以折叠边缘并加权:
g2 = g.copy()
g2.contract_vertices(membership)
g2.simplify(combine_edges={"weight": sum})