为networkx中的节点和边生成特征向量
我想用 networkx
创建一个图,这个图里的节点和边都有属性。我知道每个节点和边都可以创建一个属性的映射表(字典)。不过,我需要为每个节点和边创建一个特征向量,以便用 scikit-learn
来训练分类器。我不想单独创建一个特征矩阵,让每一行代表一个节点的特征。相反,我想把特征向量直接放在 networkx
图里。所以我想要的效果是这样的:
node = Graph.get_node(i)
feature_vec = node.get_features_vector()
有没有简单又符合 Python 风格的方法来做到这一点,而不需要写“包装器”?
1 个回答
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])