根据iGraph [Python]中的常见参数折叠图形

时间:2015-07-20 23:30:34

标签: python igraph

我有一个igraph网络g,其中所有边的权重都是1,并且所有顶点都属于5个组(用顶点参数称为“group”)。

现在我想制作一个新图G,其中g的顶点根据它们所属的组折叠,收缩。这样G的顶点数减少到g中不同组的数量,这些新的折叠顶点之间的边的权重等于g中相同组之间的边的总和数。

我相信我可以使用contract_vertices()。但是边缘的重量不会被添加,我猜...无论如何,有没有办法在igraph中实现这一点?

谢谢!

1 个答案:

答案 0 :(得分:1)

使用contract_vertices()后跟simplify(),可以折叠边缘并加权:

g2 = g.copy()
g2.contract_vertices(membership)
g2.simplify(combine_edges={"weight": sum})