簡體   English   中英

在python中的networkx圖中查找最大加權邊

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM