簡體   English   中英

你如何在networkx中找到沒有傳出邊的節點?

[英]How do you find nodes with no outgoing edges in networkx?

我試圖在 networkx 的有向圖中找到沒有傳出邊的節點。

有沒有辦法做到這一點? 我找到了隔離,但找到了沒有傳入或傳出邊緣的邊緣,我不想要那樣。

如果G是你的DiGraph ,你可以通過

(node for node, out_degree in G.out_degree_iter() if out_degree == 0)

我遇到了out_degree_iter()問題,因為它返回錯誤。 所以我在 NetworkX 文檔上搜索了其他解決方案,發現這是有效的。 G是有DiGraph

[node for node in G.nodes if G.out_degree(node) == 0]

請注意,在查找傳入度數或邊緣的情況下。 您可以簡單地從out_degree更改為in_degree

參考: networkx.DiGraph.out_degree

“返回迭代器的方法已被刪除

在 NetworkX 2.x 中,所以@fuglede 的回答需要一個小的更新:

(node for node, out_degree in G.out_degree() if out_degree == 0)

2.x 中.out_degree提供的視圖/報告 API 在(node, out_degree)對上提供了 OutDegreeView,使這種方法比 @Fony Lew 的方法稍微簡單一些。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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