【问题标题】:Getting the nodes at the end of an edge g.edge_iter获取边缘 g.edge_iter 末尾的节点
【发布时间】:2012-06-03 10:08:58
【问题描述】:

我在networkx python中使用edges_iter函数......我希望从图中随机提取边,然后使用这些边,获取每一端的节点......我听说edge_iter可以帮助我获得随机边缘(我需要随机边缘),但我不知道如何连接节点。我已经以 gpickle 格式保存了图表并加载它......然后我使用 a=G.edges_iter() 打印一个 我明白了 指示边缘的出现...接下来我想要找出连接在该边缘末端的节点...帮我解决这个问题...非常感谢。

【问题讨论】:

    标签: python nodes networkx


    【解决方案1】:

    edges_iter 返回一个生成器对象,所以我猜你想遍历你得到的边。

    无论如何,边已经包含与它们关联的节点的信息,因为每条边都可以看作是两个节点的元组。考虑这个例子:

    import networkx as nx
    
    g = Graph()
    g.add_edges_from([(1, 2), (2, 3), (4,5), (1, 5), (2, 4)])
    # Nodes are automatically added
    
    for edge in g.edges_iter():
        print edge
        print 'Node 1:', edge[0]
        print 'Node 2:', edge[1]
    

    edge[0] 将是一个节点,edge[1] 将是第二个节点。

    但是,我看不出使用这种方法会如何获得随机边缘。另一种解决方案是使用 random.choice 并选择边缘:

    from random import choice
    
    ... # Initialize graph
    
    random_edge = choice(g.edges())
    

    如果您想选择多个随机边,可以使用random.sample

    from random import sample
    
    ... # Initialize graph
    
    # Get 2 random edges
    random_edges = sample(g.edges(), 2)
    

    【讨论】:

      猜你喜欢
      • 2018-02-09
      • 1970-01-01
      • 2022-01-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-06
      相关资源
      最近更新 更多