Skip to main content
`Ctrl`+`K`

# modularity_matrix

modularity_matrix(G, nodelist=None, weight=None)

  Returns the modularity matrix of G.

  The modularity matrix is the matrix B = A - <A>, where A is the adjacency matrix and <A> is the average adjacency matrix, assuming that the graph is described by the configuration model.

  More specifically, the element B_ij of B is defined as

  \[A_{ij} - {k_i k_j \over 2 m}\]

  where k_i is the degree of node i, and where m is the number of edges in the graph. When weight is set to a name of an attribute edge, Aij, k_i, k_j and m are computed using its value.

  Parameters:
    G Graph

      A NetworkX graph

    nodelist list, optional

      The rows and columns are ordered according to the nodes in nodelist. If nodelist is None, then the ordering is produced by G.nodes().

    weight string or None, optional (default=None)

      The edge attribute that holds the numerical value used for the edge weight. If None then all edge weights are 1.

  Returns:
    B Numpy array

      The modularity matrix of G.

  See also

  `to_numpy_array`
  `modularity_spectrum`
  `adjacency_matrix`
  `directed_modularity_matrix`

  References

  [1]

  M. E. J. Newman, “Modularity and community structure in networks”, Proc. Natl. Acad. Sci. USA, vol. 103, pp. 8577-8582, 2006.

  Examples

      >>> k = [3, 2, 2, 1, 0]
      >>> G = nx.havel_hakimi_graph(k)
      >>> B = nx.modularity_matrix(G)