使用节点id在numpy中索引矩阵
有没有一种方法可以使用节点名对通过networkx构建为邻接矩阵的numpy矩阵进行索引 我从一个.txt文件构建了networkx图形解析行。 每条线表示一条边,其形式为SourceNode:DestNode:EdgeWight使用节点id在numpy中索引矩阵,numpy,networkx,Numpy,Networkx,有没有一种方法可以使用节点名对通过networkx构建为邻接矩阵的numpy矩阵进行索引 我从一个.txt文件构建了networkx图形解析行。 每条线表示一条边,其形式为SourceNode:DestNode:EdgeWight 我需要这个矩阵,因为我要计算一些节点的命中概率不管你如何构造你的图,你都可以计算它的邻接矩阵。如果未指定,则表示此图中的行和列的顺序将与G.nodes生成的顺序相同 比如说, # create your graph G = nx.DiGraph() with open
我需要这个矩阵,因为我要计算一些节点的命中概率不管你如何构造你的图,你都可以计算它的邻接矩阵。如果未指定,则表示此图中的行和列的顺序将与G.nodes生成的顺序相同 比如说,
# create your graph
G = nx.DiGraph()
with open("spec.txt") as f:
for line in f:
for src, dest, weight in line.split(':'):
G.add_edge(src, dest, weight=weight)
# create adjacency matrix
# - store index now, in case graph is changed.
nodelist = G.nodes()
# extract matrix, and convert to dense representation
A = nx.adjacency_matrix(G, nodelist=nodelist).todense()
# normalise each row by incoming edges, or whatever
B = A / A.sum(axis=1).astype(float)
让我们假设您的节点按字母顺序标记为C-G。节点顺序仅根据字典散列,我的顺序为:['C','E','D','G','F']。
如果要从矩阵中查找信息,可以使用如下查找:
ix = nodelist.index('D') # ix is 2 here
print A[ix,:]
查找的方法正是我所需要的。谢谢你的帮助!!