本文簡要介紹
networkx.algorithms.bipartite.projection.generic_weighted_projected_graph
的用法。用法:
generic_weighted_projected_graph(B, nodes, weight_function=None)
具有用戶指定權重函數的 B 的加權投影。
二分網絡 B 被投影到指定的節點上,權重由用戶指定的函數計算。此函數必須接受兩個節點的鄰域集作為參數並返回整數或浮點數。
如果節點與原始圖中的公共節點有邊,則節點保留其屬性並在結果圖中連接。
- B:NetworkX 圖
輸入圖應該是二分圖。
- nodes:列表或可迭代
要投影到的節點(“bottom” 節點)。
- weight_function:函數
此函數必須接受與此函數相同的輸入圖和兩個節點作為參數;並返回一個整數或浮點數。默認函數計算共享鄰居的數量。
- Graph:NetworkX 圖
投影到給定節點上的圖。
參數:
返回:
注意:
沒有嘗試驗證輸入圖 B 是否為二分圖。圖和節點屬性(淺)複製到投影圖。
有關如何在 NetworkX 中處理二分圖的更多詳細信息,請參閱
bipartite documentation
。例子:
>>> from networkx.algorithms import bipartite >>> # Define some custom weight functions >>> def jaccard(G, u, v): ... unbrs = set(G[u]) ... vnbrs = set(G[v]) ... return float(len(unbrs & vnbrs)) / len(unbrs | vnbrs) ... >>> def my_weight(G, u, v, weight="weight"): ... w = 0 ... for nbr in set(G[u]) & set(G[v]): ... w += G[u][nbr].get(weight, 1) + G[v][nbr].get(weight, 1) ... return w ... >>> # A complete bipartite graph with 4 nodes and 4 edges >>> B = nx.complete_bipartite_graph(2, 2) >>> # Add some arbitrary weight to the edges >>> for i, (u, v) in enumerate(B.edges()): ... B.edges[u, v]["weight"] = i + 1 ... >>> for edge in B.edges(data=True): ... print(edge) ... (0, 2, {'weight': 1}) (0, 3, {'weight': 2}) (1, 2, {'weight': 3}) (1, 3, {'weight': 4}) >>> # By default, the weight is the number of shared neighbors >>> G = bipartite.generic_weighted_projected_graph(B, [0, 1]) >>> print(list(G.edges(data=True))) [(0, 1, {'weight': 2})] >>> # To specify a custom weight function use the weight_function parameter >>> G = bipartite.generic_weighted_projected_graph( ... B, [0, 1], weight_function=jaccard ... ) >>> print(list(G.edges(data=True))) [(0, 1, {'weight': 1.0})] >>> G = bipartite.generic_weighted_projected_graph( ... B, [0, 1], weight_function=my_weight ... ) >>> print(list(G.edges(data=True))) [(0, 1, {'weight': 10})]
相關用法
- Python NetworkX generic_node_match用法及代碼示例
- Python NetworkX generic_multiedge_match用法及代碼示例
- Python NetworkX generic_edge_match用法及代碼示例
- Python NetworkX generate_multiline_adjlist用法及代碼示例
- Python NetworkX generate_gml用法及代碼示例
- Python NetworkX generate_adjlist用法及代碼示例
- Python NetworkX generate_graphml用法及代碼示例
- Python NetworkX generate_edgelist用法及代碼示例
- Python NetworkX generate_gexf用法及代碼示例
- Python NetworkX generalized_degree用法及代碼示例
- Python NetworkX generate_random_paths用法及代碼示例
- Python NetworkX get_edge_attributes用法及代碼示例
- Python NetworkX geometric_edges用法及代碼示例
- Python NetworkX get_node_attributes用法及代碼示例
- Python NetworkX geographical_threshold_graph用法及代碼示例
- Python NetworkX gomory_hu_tree用法及代碼示例
- Python NetworkX gn_graph用法及代碼示例
- Python NetworkX greedy_color用法及代碼示例
- Python NetworkX gnp_random_graph用法及代碼示例
- Python NetworkX greedy_modularity_communities用法及代碼示例
- Python NetworkX greedy_tsp用法及代碼示例
- Python NetworkX graphviz_layout用法及代碼示例
- Python NetworkX global_reaching_centrality用法及代碼示例
- Python NetworkX global_parameters用法及代碼示例
- Python NetworkX girvan_newman用法及代碼示例
注:本文由純淨天空篩選整理自networkx.org大神的英文原創作品 networkx.algorithms.bipartite.projection.generic_weighted_projected_graph。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。