【问题标题】:Add vertex attributes to a weighted igraph Graph in python在python中将顶点属性添加到加权igraph Graph
【发布时间】:2016-04-20 19:08:20
【问题描述】:

我正在学习 python-igraph,并且难以处理划分为组件(它们之间没有连接)的图。当我在此图上应用其中一种聚类算法时,它似乎无法正常工作,因此我需要将算法分别应用于每个子图(组件)。因此,为了维护顶点的标识,我想添加一个顶点属性,该属性为我提供原始图中的 id 号。我的图表由weighted adjacency 矩阵构成:

import numpy as np
import igraph

def symmetrize(a):
    return a + a.T - 2*np.diag(a.diagonal())

A = symmetrize(np.random.random((100,100)))

G = igraph.Graph.Adjacency(A.tolist(),attr="weight",mode="UPPER")

看到应该有加vertex attributes的方法,但是不明白怎么用..

【问题讨论】:

    标签: python graph igraph


    【解决方案1】:

    向所有顶点添加顶点属性的工作方式如下:

    G.vs["attr"] = ["id1", "id2", "id3", ...]
    

    您还可以将顶点属性附加到单个顶点:

    G.vs[2]["attr"] = "id3"
    

    例如,如果您只需要所有顶点的唯一标识符,您可以这样做:

    G.vs["original_id"] = list(range(G.vcount()))
    

    (如果您使用的是 Python 2.x,则不需要 list() 部分,因为 range() 已经生成了一个列表)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多