directed_modularity_matrix#

directed_modularity_matrix(G, nodelist=None, weight=None)[源代码]#

返回G的定向模块矩阵。

模块化矩阵是矩阵b=a-<a>,其中a是邻接矩阵,<a>是预期邻接矩阵,假设图由配置模型描述。

更具体地说,b的b_ij元素定义为

\[B Ij=A Ij-K I Out K J In/M\]

在哪里? \(k_i^{{in}}\) 是节点i的度数,以及 \(k_j^{{out}}\) 是节点j的向外度,m是图中的边数。当权重设置为属性边的名称时,a i j、k_i、k_j和m将使用其值进行计算。

参数
GDiGraph

网络X有向图

nodelist列表,可选

行和列根据节点列表中的节点进行排序。如果nodelist为NONE,则排序由G.nodes()生成。

weight字符串或无,可选(默认值=无)

保存用于边权重的数值的边属性。如果没有,则所有边权重为1。

返回
B块状矩阵

G的模矩阵。

参见

to_numpy_array
modularity_spectrum
adjacency_matrix
modularity_matrix

笔记

如果从节点i到节点j有链接,networkx将邻接矩阵的元素a_ij定义为1。leicht和newman使用相反的定义。这就解释了b_ij的不同表达。

工具书类

1

E.A.Leicht,M.E.J.Newman,“定向网络中的社区结构”,物理。Rev Lett.,第100卷,第11期,第118703页,2008年。

实例

>>> G = nx.DiGraph()
>>> G.add_edges_from(
...     (
...         (1, 2),
...         (1, 3),
...         (3, 1),
...         (3, 2),
...         (3, 5),
...         (4, 5),
...         (4, 6),
...         (5, 4),
...         (5, 6),
...         (6, 4),
...     )
... )
>>> B = nx.directed_modularity_matrix(G)