[英]Finding maximum weighted edge in a networkx graph in python
我想在networkx圖中找到'n'個最大加權邊。 如何實現。 我構建了如下圖:
g_test = nx.from_pandas_edgelist(new_df, 'number', 'contactNumber', edge_attr='callDuration')
現在,我想找到頂部'n'邊緣權重,即top'n'callDurations。 我還想分析這個圖表以找出它的趨勢。 請幫助我如何實現這一目標。
如果您的圖表存儲為g,則可以使用以下方法訪問其邊緣,包括其屬性:
g.edges(data=True)
這將返回元組列表。 前兩個條目是節點,第三個條目是屬性的字典,如下所示:
[(a,b,{"callDuration":10}),(a,c,{"callDuration":7})]
您可以根據callDuration屬性對此列表進行排序,如下所示:
sorted(g.edges(data=True),key= lambda x: x[2]['callDuration'],reverse=True)
注意我們使用reverse來查看最大的callDuration邊緣。
我擔心你的第二個問題非常廣泛 - 你可以用網絡做很多事情! 看看這樣的一些教程: https : //programminghistorian.org/en/lessons/exploring-and-analyzing-network-data-with-python
我們試試吧:
max(dict(g_test.edges).items(), key=lambda x: x[1]['callduration'])
在此圖形網絡中查找最大權重邊緣。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.