当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。