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

时间:2017-04-22 21:57:56

标签: python nodes igraph vertex

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

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

您可以使用adjacent实例的igraph.Graph方法获取给定顶点的边缘索引。从这里可以直接对这些边的权重求和:

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]