Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何从networkx中的特定边缘获取节点?_Python_Graph_Networkx - Fatal编程技术网

Python 如何从networkx中的特定边缘获取节点?

Python 如何从networkx中的特定边缘获取节点?,python,graph,networkx,Python,Graph,Networkx,我想比较图中不同边的节点。如何从边(n1,n2)获取节点(n1和n2)?中的边是由其节点定义的,因此我不确定您在这里要问什么。图中的特定边只是节点的元组,具有可选的权重 import networkx as nx g = nx.Graph() g.add_edge(1,2) g.add_edge(2,3) g.edges() 给予 如您所见,边列表明确提供了每条边的节点 更新:这是否符合您的要求 #!/usr/bin/python import networkx as nx import r

我想比较图中不同边的节点。如何从边(n1,n2)获取节点(n1和n2)?

中的边是由其节点定义的,因此我不确定您在这里要问什么。图中的特定边只是节点的元组,具有可选的权重

import networkx as nx
g = nx.Graph()
g.add_edge(1,2)
g.add_edge(2,3)
g.edges()
给予

如您所见,边列表明确提供了每条边的节点

更新:这是否符合您的要求

#!/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]

对于我所想的问题的答案是,我的本意是:

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))

假设我有一个边列表,其中一个可能是边(2,3),它是节点2和3之间的边。我想要这个程序,随机从我的数据中给我一个边缘,也给我它的节点,就像这里给我2和3。是的,谢谢。实际上这是我程序的第一部分,我以后需要处理这些节点。所以我在想可能有一个函数可以获取_节点,与函数get_edge相反。。。但它仍然足够好!这真的没有道理。网络边缘“节点”是一个对象实例或“视图”(根据我从文档中收集到的信息),带有一组属性和其他OO工具。另一方面,“节点标签”是节点的“名称”,而不是networkx对象实例。如何从边缘获取与networkx边缘数据中包含的节点标签相关联的networkx对象实例或视图?
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))