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


Python NetworkX set_edge_attributes用法及代碼示例


本文簡要介紹 networkx.classes.function.set_edge_attributes 的用法。

用法:

set_edge_attributes(G, values, name=None)

從給定值或值字典設置邊屬性。

警告

參數 valuesname 的調用順序在 v1.x 和 v2.x 之間切換。

參數

GNetworkX 圖表
values標量值,dict-like

邊屬性應該設置為什麽。如果 values 不是字典,則將其視為單個屬性值,然後將其應用於 G 中的每條邊。這意味著,如果您提供一個可變對象(如列表),則對該對象的更新將反映在每條邊的邊屬性中。屬性名稱將為 name

如果 values 是 dict 或 dict 的 dict,它應該由邊元組鍵控到屬性值或用於更新邊屬性的屬性鍵/值對的 dict。對於多重圖,邊元組必須采用 (u, v, key) 的形式,其中 uv 是節點,而 key 是邊鍵。對於非多重圖,鍵必須是 (u, v) 形式的元組。

name字符串(可選,默認=無)

如果值為標量,則要設置的邊屬性的名稱。

例子

在計算了圖邊的某些屬性之後,您可能希望分配一個邊屬性來存儲每個邊的該屬性的值:

>>> G = nx.path_graph(3)
>>> bb = nx.edge_betweenness_centrality(G, normalized=False)
>>> nx.set_edge_attributes(G, bb, "betweenness")
>>> G.edges[1, 2]["betweenness"]
2.0

如果您提供一個列表作為第二個參數,則對列表的更新將反映在每條邊的邊屬性中:

>>> labels = []
>>> nx.set_edge_attributes(G, labels, "labels")
>>> labels.append("foo")
>>> G.edges[0, 1]["labels"]
['foo']
>>> G.edges[1, 2]["labels"]
['foo']

如果您提供字典字典作為第二個參數,則整個字典將用於更新邊屬性:

>>> G = nx.path_graph(3)
>>> attrs = {(0, 1): {"attr1": 20, "attr2": "nothing"}, (1, 2): {"attr2": 3}}
>>> nx.set_edge_attributes(G, attrs)
>>> G[0][1]["attr1"]
20
>>> G[0][1]["attr2"]
'nothing'
>>> G[1][2]["attr2"]
3

請注意,如果 dict 包含不在 G 中的邊,它們將被靜默忽略:

>>> G = nx.Graph([(0, 1)])
>>> nx.set_edge_attributes(G, {(1, 2): {"weight": 2.0}})
>>> (1, 2) in G.edges()
False

相關用法


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