我想获取networkx图中两个节点之间的边缘。 更具体地说,我想获取与此边缘相关联的一些数据。 我事先知道这两个节点是链接的。 有没有函数可以做到这一点?
边缘数据存储在字典中。要访问该字典,请使用get_edge_data()
。
import networkx as nx
G=nx.Graph()
G.add_edge(1,2, weight=5)
G.get_edge_data(1,2)
> {'weight': 5}
如果您想遍历所有的边缘,可以使用G.edges(data=True)
H = nx.Graph()
H.add_edge(2, 3, color = 'red')
H.add_edge(1, 2, weight = 4)
for u,v,data in H.edges(data=True):
print(u, v, data)
> 1 2 {'weight': 4}
> 2 3 {'color': 'red'}
MultiGraph
使用G.get_edge_data(1,2)
时,它会返回两条边及其权重。如果你的体验不同,你应该发表一个新的问题。[你确定这个图有多条边吗? - 如果它不是一个MultiGraph
或MultiDiGraph
,那么每次添加边缘时都会覆盖之前的边缘] - Joel
u
和v
,获取连接它们的边。 - a06eget_edge_data()
的东西?还有edges()
,但它返回连接的节点列表。 - Reti43