我想比较图中不同边的节点。如何从边缘(n1,n2)获取节点(n1和n2)?
答案 0 :(得分:3)
NetworkX中的边缘由其节点定义,所以我不确定你在这里问什么。图中的特定边是一个节点元组,具有可选的权重。
import networkx as nx
g = nx.Graph()
g.add_edge(1,2)
g.add_edge(2,3)
g.edges()
给出
[(1, 2), (2, 3)]
如您所见,边列表明确提供了每条边的节点。
更新:这样做你想要的吗?
#!/usr/bin/python
import networkx as nx
import random
g = nx.Graph()
g.add_edges_from([(1,2),(2,3),(1,4),(2,5)])
random_edge = random.choice(g.edges())
print 'Randomly selected edge is:', random_edge
print 'Nodes are', random_edge[0], 'and', random_edge[1]
答案 1 :(得分:0)
我认为预期的问题的答案是:
graph = networkx.read_graphml('some_fully_loaded_graph.graphml')
edge0 = list(graph.edges(data=True))[0]
subgraph = graph.edge_subgraph([edge0[:2]])
nodes0 = list(subgraph.nodes(data=True))