我有图形和计算网络密度,现在我应该只保留具有最大权重的分支(网络密度的前10%,例如20最大权重分支从200 )。我无法找到如何做到这一点?蟒蛇离开10%分支与最大权重NetworkX图
1
A
回答
2
这个问题有点令人困惑,所以,如果稍后会提供更多信息,我很乐意修改响应。
我有图表和计数网络密度,
通过其中我假设你有一个无向(?)加权网络。因此,网络密度(对于加权情况)将通过对边的权重求和并将其除以可能边的数量(| V | *(| V | -1)来计算,其中V是边集和| 。|表示集合的基数)。如果这是你所拥有的,让我们把计算的网络密度Q.
我应该只保留具有最大权重的网络密度(前10%
所以,现在,你想要的分支我们称之为Qfrac=Q*(10/100.0)
为了做到这一点,一般来说,首先按照权重降序对边进行排序,然后开始累积它们的密度贡献,直到累加和相等(或超过)Qfrac
在代码并假设G是曲线图,并且每个边缘具有weight
属性:
edgesSorted = sorted(G.edges(data = True), key=lambda x:x[2]['weight'], reverse=False)
k=0
acc=0.0
NposCons = float(G.number_of_nodes() * (G.number_of_nodes()-1))
while (acc<Qfrac):
acc+=(edgesSorted[k][2]['weight']/NposCons
k+=1
edgeExtract = edgesSorted[0:k]
BUT!
FO实施例20个分支与最大为200)
此,稍有不同。在这种情况下,您似乎不需要进行密度计算,只需要选择图中包含的200个边的高权重边的10%,总数为。这是处理略有不同:
同样,在代码与类似的假设如上:
edgesSorted = sorted(G.edges(data = True), key=lambda x:x[2]['weight'], reverse=False)
edgeExtract = edgesSorted[0:int(round(G.number_of_edges() * (10/100.0)))]
希望这有助于。
相关问题
- 1. 蟒蛇 - 与networkX
- 2. 蟒蛇最大
- 3. 与蟒蛇大熊猫分级列
- 4. 蟒蛇最大负值
- 5. 支点蟒蛇
- 6. 分组蟒蛇大熊猫
- 7. 开关蟒蛇的分布
- 8. 开幕式,并与蟒蛇
- 9. 蟒蛇networkx:不能使用current_flow_betweenness_centrality功能
- 10. 蟒蛇,加权linspace
- 11. 蟒蛇CSV是分离太多
- 12. 分离mutidimensional阵列numpy的蟒蛇
- 13. 蟒蛇中的分拣加权方差
- 14. 分析曲线图(蟒蛇)
- 15. 蟒蛇plotly创建与最大和最小号的值
- 16. 蟒蛇 - 优化分支逻辑
- 17. 蟒蛇分裂
- 18. 帮助与蟒蛇授权和重定向装饰(塔)
- 19. 逃离领先的蟒蛇
- 20. 蟒蛇 - 试图找到最大的绿色圆圈的图像
- 21. 与蟒蛇
- 22. Pyevolve与蟒蛇
- 23. batch.models.PoolAddParameter与蟒蛇
- 24. 与蟒蛇
- 25. 与LXML蟒蛇
- 26. 与蟒蛇
- 27. 与蟒蛇
- 28. 与蟒蛇
- 29. 与蟒蛇
- 30. 与蟒蛇