degree_mixing_matrix#
- degree_mixing_matrix(G, x='out', y='in', weight=None, nodes=None, normalized=True, mapping=None)[source]#
返回属性混合矩阵。
- Parameters:
- G图
NetworkX 图对象。
- x: 字符串 (‘in’,’out’)
源节点的度类型(仅限有向图)。
- y: 字符串 (‘in’,’out’)
目标节点的度类型(仅限有向图)。
- nodes: 列表或可迭代对象(可选)
仅使用容器中的节点构建矩阵。 默认是所有节点。
- weight: 字符串或 None, 可选 (默认=None)
存储用作权重的数值的边属性。如果为 None,则每条边的权重为 1。 度是与节点相邻的边权重的总和。
- normalized布尔值 (默认=True)
如果为 False 则返回计数,如果为 True 则返回概率。
- mapping字典, 可选
从节点度到矩阵中整数索引的映射。 如果未指定,将使用任意顺序。
- Returns:
- m: numpy 数组
节点度的出现计数或联合概率。
Notes
度混合矩阵的定义因是否应包括不出现的度值的行而异。这里我们不包括这些空行。但你可以通过输入包含这些值的
mapping
来强制它们出现。参见示例。Examples
>>> 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)} # 恒等映射 >>> 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. ]])