1
我想比较图中不同边的节点。我怎样才能从边缘(n1,n2)得到节点(n1和n2)?如何从网络x中的特定边缘获取节点?
我想比较图中不同边的节点。我怎样才能从边缘(n1,n2)得到节点(n1和n2)?如何从网络x中的特定边缘获取节点?
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]
假设我有一个边列表,其中一人可能是边缘(2,3),这是节点2和3。我希望程序之间的边缘,随机给我一个边缘从我的数据,也给我它的节点,就像这里给我2和3. – masti 2010-05-01 16:01:45
@masti:我已经更新了我的答案。你是这个意思吗? – 2010-05-01 16:45:44
是的,谢谢。实际上,这是我的程序的第一部分,我需要稍后使用这些节点。所以我认为可能有一个函数get_nodes,函数get_edge的相反...但它仍然够好! – masti 2010-05-01 17:09:09