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)