The*_*Man 6 python networkx python-2.7
我正在使用NetworkX来创建加权图(而不是有向图).每个节点都有一个节点名称和一些具有权重的边.权重始终为正,非零整数.
我要做的是获取一个元组列表,其中每个元组代表图中的一个节点(按名称)和节点的加权程度.
我可以这样做:
the_list = sorted(my_graph.degree_iter(),key=itemgetter(1),reverse=True)
Run Code Online (Sandbox Code Playgroud)
但这似乎并未将每个节点的权重考虑在内.每个节点可能对每个边缘具有不同的权重(或者它们可能是相同的,没有办法知道).
我是否需要编写一个手动执行此操作的功能?我一直在浏览NetworkX文档,并且以内置方式空出来做这个(但也许我忽略了它).
如果我必须自己编写函数,我假设我使用size()带有weight标志集的方法.这似乎只给了我图中所有权重的总和.
任何帮助是极大的赞赏.
Ari*_*ric 10
您可以将Graph.degree()方法与weight =关键字一起使用,如下所示:
In [1]: import networkx as nx
In [2]: G = nx.Graph()
In [3]: G.add_edge(1,2,weight=7)
In [4]: G.add_edge(1,3,weight=42)
In [5]: G.degree(weight='weight')
Out[5]: {1: 49, 2: 7, 3: 42}
In [6]: G.degree(weight='weight').items()
Out[6]: [(1, 49), (2, 7), (3, 42)]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6118 次 |
| 最近记录: |