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. ]])