degree_mixing_matrix#

degree_mixing_matrix(G, x='out', y='in', weight=None, nodes=None, normalized=True, mapping=None)[源代码]#

返回属性的混合矩阵。

参数:
G

NetworkX 图对象。

x: 字符串 (‘in’,’out’)

源节点的度类型(仅有向图)。

y: 字符串 (‘in’,’out’)

目标节点的度类型(仅有向图)。

nodes: 列表或可迭代对象 (可选)

仅使用容器中的节点构建矩阵。默认为所有节点。

weight: 字符串或 None, 可选 (默认=None)

保存用作权重的数值的边属性。如果为 None,则每条边的权重为 1。节点的度是与该节点相邻的边权重的总和。

normalized布尔值 (默认=True)

如果为 False,返回计数;如果为 True,返回概率。

mapping字典, 可选

将节点度映射到矩阵中的整数索引。如果未指定,将使用任意排序。

返回:
m: numpy 数组

节点度出现次数或联合概率。

说明

度混合矩阵的定义因是否包含不存在的度值对应的行而异。这里我们不包括这些空行。但你可以通过输入包含这些值的 mapping 来强制它们出现。参见示例。

示例

>>> G = nx.star_graph(3)
>>> mix_mat = nx.degree_mixing_matrix(G)
>>> mix_mat
array([[0. , 0.5],
       [0.5, 0. ]])

如果你想让每个可能的度都显示为一行,即使没有节点具有该度,请按如下方式使用 mapping

>>> max_degree = max(deg for n, deg in G.degree)
>>> mapping = {x: x for x in range(max_degree + 1)}  # identity mapping
>>> mix_mat = nx.degree_mixing_matrix(G, mapping=mapping)
>>> mix_mat
array([[0. , 0. , 0. , 0. ],
       [0. , 0. , 0. , 0.5],
       [0. , 0. , 0. , 0. ],
       [0. , 0.5, 0. , 0. ]])