如何在 Igraph Python 中将边权重移动到顶点权重

How do I move the edge weights to Vertex weights in Igraph Python

我有一个 igraph.Graph 对象,其边具有权重。对于每个顶点,我想总结相邻边的权重并将其分配给一个新的顶点属性 gg.vs['weight'].

您可以使用 igraph.Graph 实例的 adjacent 方法获取给定顶点所关联的边的索引。从这里可以直接计算出这些边的权重:

import igraph

g = igraph.Graph.Barabasi(n = 10, m = 3)
g.es['weight'] = range(g.ecount())
g.vs['weight'] = [sum(g.es[eid]['weight']
                      for eid in g.adjacent(v.index, mode = 'ALL'))
                  for v in g.vs]

看看 Graph 对象的 strength() 方法 - 它应该完全满足您的需要(即计算给定顶点的入射边的某些边属性的总和,然后将它分配给一个顶点)。