我正在尝试剪切图表中具有不规则值的边缘,与这些边缘相关联的实际值存储在networkx
之外。我计划迭代图中的所有节点来进行这种修剪(100,000个元素)。
import networkx as nx
G=nx.Graph()
G.add_node(1)
G.add_node(2)
G.add_node(3)
G.add_edges_from([(1,2),(2,3)])
edges=G.get_edges_from_node(2) #(1,2),(2,3)
我似乎无法找到这个功能。
答案 0 :(得分:1)
import networkx as nx
G=nx.Graph()
G.add_node(1)
G.add_node(2)
G.add_node(3)
G.add_edges_from([(1,2),(2,3)])
您可以通过以下方式迭代所有节点:
for n in G.node.items():
print(n)
(1, {})
(2, {})
(3, {})
您还可以将图表外部的值添加为边缘属性,并简单地遍历边缘
G2=nx.Graph()
G2.add_node(1)
G2.add_node(2)
G2.add_node(3)
G2.add_edges_from([(1,2, {'value': 1}),(2,3, {'value': 2})])
for edge in G2.edges(data=True):
print(edge)
(1, 2, {'value': 1})
(2, 3, {'value': 2})
答案 1 :(得分:0)
万一有人来找问题标题说的是...
以下是您可以在节点上的边缘上进行循环的几种方法
nx.Graph.edges
G.edges([1, 2, 5]) # edges incident on nodes 1, 2 and 5
G.edges(0) # edges incident on node 0
nx.Graph.adj
G.adj[0] # neighbors adjacent to node 0
下标符号
G[0] # neighbors adjacent to node 0