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


Python NetworkX set_node_attributes用法及代碼示例


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

用法:

set_node_attributes(G, values, name=None)

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

警告

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

參數

GNetworkX 圖表
values標量值,dict-like

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

如果 values 是 dict 或 dict 的 dict,則應由節點將其鍵控到屬性值或用於更新節點屬性的屬性鍵/值對的 dict。

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

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

例子

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

>>> G = nx.path_graph(3)
>>> bb = nx.betweenness_centrality(G)
>>> isinstance(bb, dict)
True
>>> nx.set_node_attributes(G, bb, "betweenness")
>>> G.nodes[1]["betweenness"]
1.0

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

>>> G = nx.path_graph(3)
>>> labels = []
>>> nx.set_node_attributes(G, labels, "labels")
>>> labels.append("foo")
>>> G.nodes[0]["labels"]
['foo']
>>> G.nodes[1]["labels"]
['foo']
>>> G.nodes[2]["labels"]
['foo']

如果您提供字典字典作為第二個參數,則假定外部字典按節點鍵控到該節點的節點屬性內部字典:

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

請注意,如果字典包含不在 G 中的節點,則這些值將被忽略:

>>> G = nx.Graph()
>>> G.add_node(0)
>>> nx.set_node_attributes(G, {0: "red", 1: "blue"}, name="color")
>>> G.nodes[0]["color"]
'red'
>>> 1 in G.nodes
False

相關用法


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