web-dev-qa-db-ja.com

networkxグラフの特定のノードにリンクされているすべてのエッジを取得します

与えられたノード(または複数のノード)に接続されたエッジのリストを返す便利なnetworkx関数(例:my_node_name)グラフ(例:G)。

私はこの方法でそれを行うことができます:

edlist=[]
for ed in G.edges():
     if 'my_node_name' in ed:
            edlist.append(ed)

しかし、もっと良い方法があると思いますか?

23
atomh33ls

グラフが無向の場合は、

_G.edges(node)
_

networkx 2.xでは、これはEdgeDataViewオブジェクトです。 networkx 1.xではこれはリストです-リスト全体を取得するのではなく、1.xでジェネレータが必要な場合は、G.edges_iter(node)が機能します(これは2.xには存在しません) )。

グラフが指示されている場合、上記のコマンドはインエッジを提供しません。使用する

_G.in_edges(node)
G.out_edges(node) 
_

これらは2.xのビューです。 1.xではこれらはリストであり、ジェネレーターオプションがあります:G.in_edges_iter(node)およびG.out_edges_iter(node)

35
Joel

メソッドedgesを使用できます

G.edges(['my_node_name'])

または関数 edges

networkx.edges(G, ['my_node_name'])
10
donkopotamus