日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

关于在networkx中使用louvain算法报错的问题

發布時間:2023/12/10 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 关于在networkx中使用louvain算法报错的问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
module ‘networkx.algorithms.community’ has no attribute ‘louvain_communities’

Networkx是復雜網絡科學中常用的python包,louvain也是常用的社團發現算法之一。在networkx的文檔中也有描述。louvain_communities — NetworkX 2.8.5 documentationhttps://networkx.org/documentation/stable/reference/algorithms/generated/networkx.algorithms.community.louvain.louvain_communities.html#networkx.algorithms.community.louvain.louvain_communities但當我對該函數進行調用時,發現并沒有相關屬性,如下圖(下圖測試的代碼時官網給的示例代碼)。如果是自己寫的那就算了,但是這是官方文檔中的代碼,真的服了(*  ̄︿ ̄)。如下圖:

?因此我定位到源代碼所在的文件目錄community文件夾下尋找原因,發現文件夾中并沒有文檔中所說的louvain_communities的相關文件。文件夾中只包含了文檔中所描述的部分函數。如下圖:

?然而,幸運的是。官方文檔中包含了函數的源代碼,因此我們可能從源代碼入手,創建缺失的相關文件。點擊下圖的source就可以看到該方法的源代碼,見下面兩張圖

?我拷貝文檔中的所有內容到空的py文件中,(注意這里要刪掉第13行和第116行的”[docs]”),然后將文件保存到上述的community文件夾下命名為”Louvain_communities.py”,之后我們更改community文件夾下的”__init__.py”文件,新增”from networkx.algorithms.community.louvain_communites import *”如下圖所示:

保存之后我們重啟juypter內核,重新運行代碼,發現報如下錯誤:?

?

?這是因為在我們新寫入的源碼中modularity的導入發生了錯誤,因此我們定位到modularity的定義位置,發現這個函數存在于另外一個文件”quality.py”文件中,如下圖:

?因此我們必須更改我們在源碼中的modularity函數的引入方式,將”louvain_communities.py”文件中第7行的”from networkx.algorithms.community import modularity”更改為”from networkx.algorithms.community.quality import modularity”。更改保存之后,我們重啟jupyter內核,運行代碼最終成功運行。運行結果與官網的結果一致,大功告成!!!( ̄︶ ̄)↗ 

?

總結

以上是生活随笔為你收集整理的关于在networkx中使用louvain算法报错的问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。