根据 iGraph [Python] 中的公共参数折叠图形

collapsing graphs according to a common parameter in iGraph [Python]

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

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

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

谢谢!

使用contract_vertices()后接simplify(),可以折叠边并求和权重:

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