すべてのノードに ipaddress 文字列、緯度と経度の値が必要です。また、networkx によって作成されたグラフを検索するときに、そのようなオブジェクトへのポインターを取得するにはどうすればよいですか?
2229 次
1 に答える
5
NetworkX は、グラフが辞書のように機能するという考えに基づいています。ノードは「辞書」に任意のプロパティを追加できるため、ノードとして機能するカスタム オブジェクトは必要ありません。
次の対話型セッションを検討してください。
>>> import networkx as nx
>>> G = nx.Graph()
>>> G.add_node(1)
>>> G.node[1]['ipaddress'] = '8.8.8.8'
>>> G.node[1]['longitude'] = 37
>>> G.node[1]['latitude'] = 50
>>> G.node[1]
{'latitude': 50, 'ipaddress': '8.8.8.8', 'longitude': 37}
>>> G.node[1]['ipaddress']
'8.8.8.8'
ここでは、 、、およびが関連付けられた単一のノードを持つグラフ1
が作成されます。グラフにノードを要求することにより、そのノードに一定時間で直接アクセスし、ほぼ同じ方法でそのプロパティを取得します。ipaddress
longitude
latitude
特定のノードを参照するには、いくつかの方法があります。たとえば、ディクショナリを使用して、必要なプロパティのリストまたはノードのセットを格納できます。2 番目の可能性 (各ノードに固有の単一のプロパティに対してのみ有効) は、プロパティをノードとして直接使用することです。たとえば、IP アドレスの場合:
>>> H = nx.Graph()
>>> H.add_node('8.8.8.8', longitude=37, latitude=50)
>>> H.node['8.8.8.8']
{'latitude': 50, 'longitude': 37}
ここでは、NetworkX が提供する利便性を利用して、ノードの作成時にプロパティを指定しています。
于 2011-12-13T14:41:19.547 に答える