當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python NetworkX projected_graph用法及代碼示例


本文簡要介紹 networkx.algorithms.bipartite.projection.projected_graph 的用法。

用法:

projected_graph(B, nodes, multigraph=False)

返回 B 到其節點集之一的投影。

返回圖 G,它是二分圖 B 在指定節點上的投影。如果它們在 B 中有共同的鄰居,它們將保留它們的屬性並在 G 中連接。

參數

BNetworkX 圖

輸入圖應該是二分圖。

nodes列表或可迭代

要投影到的節點(“bottom” 節點)。

multigraph: bool (default=False)

如果 True 返回一個多重圖,其中多條邊表示多個共享鄰居。它們在多重圖中的邊鍵被分配給鄰居的標簽。

返回

GraphNetworkX 圖或多重圖

投影到給定節點上的圖。

注意

沒有嘗試驗證輸入圖 B 是否為二分圖。返回一個簡單圖,它是將二分圖 B 投影到列表節點中給定的節點集上。如果 multigraph=True 則返回一個多重圖,每個共享鄰居都有一條邊。

允許有向圖作為輸入。如果節點之間存在有向路徑,則輸出也將是帶邊的有向圖。

圖和節點屬性(淺)複製到投影圖。

有關如何在 NetworkX 中處理二分圖的更多詳細信息,請參閱 bipartite documentation

例子

>>> from networkx.algorithms import bipartite
>>> B = nx.path_graph(4)
>>> G = bipartite.projected_graph(B, [1, 3])
>>> list(G)
[1, 3]
>>> list(G.edges())
[(1, 3)]

如果節點 ab 通過節點 1 和 2 連接,則構建多重圖會導致投影到 [ a , b ] 上的兩條邊:

>>> B = nx.Graph()
>>> B.add_edges_from([("a", 1), ("b", 1), ("a", 2), ("b", 2)])
>>> G = bipartite.projected_graph(B, ["a", "b"], multigraph=True)
>>> print([sorted((u, v)) for u, v in G.edges()])
[['a', 'b'], ['a', 'b']]

相關用法


注:本文由純淨天空篩選整理自networkx.org大神的英文原創作品 networkx.algorithms.bipartite.projection.projected_graph。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。