为networkx中的节点和边生成特征向量

时间:2014-08-03 19:49:00

标签: python networkx

我想创建一个networkx图表,其中我有节点和边缘的属性。我知道,对于每个节点和边缘,可以创建属性的地图/字典。但是,我需要为每个节点和每个边创建一个特征向量,以便与scikit-learn一起使用它们来训练分类器。我不想创建一个显式的特征矩阵,其中每一行代表一个节点的特征。相反,我想将特征向量合并到networkx图本身中。所以我想要这样的东西:

node = Graph.get_node(i)
feature_vec = node.get_features_vector()

有没有快速/ pythonic的方式来做这个而不用写包装'?

1 个答案:

答案 0 :(得分:0)

您可以添加numpy数组作为节点属性。像,

In [1]: import networkx as nx

In [2]: import numpy as np

In [3]: G = nx.Graph()

In [4]: feature_vector=np.array([1,7,22])

In [5]: G.add_node(1,v=feature_vector)

In [6]: G.node[1]['v']
Out[6]: array([ 1,  7, 22])