【问题标题】:Networkx, get all in_edges of a nodeNetworkx,获取节点的所有in_edges
【发布时间】:2016-05-14 19:05:42
【问题描述】:

我使用 doc 中描述的 in_edges 方法将所有传入边获取到有向图中的节点 G[myIndex],但 for u, v, data in G.in_edges(G[maxIndex], data=True): 实际上给了我所有 out_edges。不是我想要的输出。

当我尝试G.out_edges 时,它为我提供了来自所有 out_edges 的所有边缘(就像距离所需输出更远的一步)。将我想要的节点传递给 nbunch 参数时是否缺少一些东西?对我来说这似乎是一个错误,但在那种情况下很容易用谷歌搜索它,所以我认为我错了。

在图像中,在右侧可以看到,边缘 0 的 in_edges 正在给出从左侧看到的边缘......也可以看到,in_degree 是 3。

【问题讨论】:

    标签: python graph networkx


    【解决方案1】:

    我认为您误解了 G[maxIndex] 的作用。它实际上会为您提供节点maxIndex出边,然后从那一堆节点中获取入边

    如果您只是想要给定节点的边缘,您可以使用G.in_edges(maxIndex, data=True)。像这样:

    G = nx.DiGraph()
    G.add_weighted_edges_from([(2, 1, 3.0), (3,1, 5.0), (4, 1, -1.0), (4, 2, 8.0)])
    maxIndex = 1  # Here
    for u, v, data in G.in_edges(maxIndex, data=True):
        print(u,v,data)
    

    输出:

    2 1 {'weight': 3.0}
    3 1 {'weight': 5.0}
    4 1 {'weight': -1.0}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-09
      • 1970-01-01
      • 1970-01-01
      • 2017-10-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多