我使用文档中描述的in_edges
方法将所有传入边缘传递到DiGraph中的节点G[myIndex]
,但是for u, v, data in G.in_edges(G[maxIndex], data=True):
实际上给了我所有的out_edges。不是我想要的输出。
当我尝试G.out_edges
时,它给了我所有边缘的所有边缘(比所需的输出更远一步)。在将我想要的节点传递给nbunch
参数时,我是否缺少某些东西?对我来说这似乎是一个错误,但在这种情况下谷歌很容易谷歌,所以我认为我错了。
在图像中,可以在右侧看到,边缘0的in_edges正在给出左侧看到的边缘......也可以看出,in_degree是3。
答案 0 :(得分:3)
我认为你误解了G[maxIndex]
的所作所为。它实际上会为您提供节点maxIndex
的 out-edge ,然后从该组节点中获取 in-edges 。
如果您只想要给定节点的边缘,则可以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}