迭代节点上的边缘

时间:2016-05-26 01:29:32

标签: python graph networkx

我正在尝试剪切图表中具有不规则值的边缘,与这些边缘相关联的实际值存储在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)

我似乎无法找到这个功能。

2 个答案:

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

万一有人来找问题标题说的是...

以下是您可以在节点上的边缘上进行循环的几种方法

  1. nx.Graph.edges

    G.edges([1, 2, 5])  # edges incident on nodes 1, 2 and 5
    G.edges(0)          # edges incident on node 0
    
  2. nx.Graph.adj

    G.adj[0]            # neighbors adjacent to node 0
    
  3. 下标符号

    G[0]                # neighbors adjacent to node 0
    
相关问题