繁体   English   中英

将顶点属性添加到python中的加权igraph图

[英]Add vertex attributes to a weighted igraph Graph in python

我正在学习python-igraph,并且难以处理分成组件(它们之间没有连接)的图形。 当我在此图上应用其中一个聚类算法时,它似乎无法正常工作,因此我需要将算法分别应用于每个子图(组件)。 所以为了保持顶点的识别,我想添加一个顶点属性,它给出了原始图中的id号。 我的图是从加权邻接矩阵构造的:

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")

我看到应该有一种方法来添加顶点属性 ,但我不明白如何使用它。

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

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

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

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

例如,如果您只需要所有顶点的唯一标识符,则可以执行以下操作:

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM