This documents an unmaintained version of NetworkX. Please upgrade to a maintained version and see the current NetworkX documentation.


Find the k-cores of a graph.

The k-core is found by recursively pruning nodes with degrees less than k.

See the following references for details:

An O(m) Algorithm for Cores Decomposition of Networks Vladimir Batagelj and Matjaz Zaversnik, 2003. https://arxiv.org/abs/cs.DS/0310049

Generalized Cores Vladimir Batagelj and Matjaz Zaversnik, 2002. https://arxiv.org/pdf/cs/0202039

For directed graphs a more general notion is that of D-cores which looks at (k, l) restrictions on (in, out) degree. The (k, k) D-core is the k-core.

D-cores: Measuring Collaboration of Directed Graphs Based on Degeneracy Christos Giatsidis, Dimitrios M. Thilikos, Michalis Vazirgiannis, ICDM 2011. http://www.graphdegeneracy.org/dcores_ICDM_2011.pdf

core_number(G) Returns the core number for each vertex.
k_core(G[, k, core_number]) Returns the k-core of G.
k_shell(G[, k, core_number]) Returns the k-shell of G.
k_crust(G[, k, core_number]) Returns the k-crust of G.
k_corona(G, k[, core_number]) Returns the k-corona of G.