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


clustering(G, nodes=None, mode='dot')

Compute a bipartite clustering coefficient for nodes.

The bipartie clustering coefficient is a measure of local density of connections defined as [R158]:

\[c_u = \frac{\sum_{v \in N(N(v))} c_{uv} }{|N(N(u))|}\]

where \(N(N(u))\) are the second order neighbors of \(u\) in \(G\) excluding \(u\), and \(c_{uv}\) is the pairwise clustering coefficient between nodes \(u\) and \(v\).

The mode selects the function for \(c_{uv}\) which can be:


\[c_{uv}=\frac{|N(u)\cap N(v)|}{|N(u) \cup N(v)|}\]


\[c_{uv}=\frac{|N(u)\cap N(v)|}{min(|N(u)|,|N(v)|)}\]


\[c_{uv}=\frac{|N(u)\cap N(v)|}{max(|N(u)|,|N(v)|)}\]
Parameters :

G : graph

A bipartite graph

nodes : list or iterable (optional)

Compute bipartite clustering for these nodes. The default is all nodes in G.

mode : string

The pariwise bipartite clustering method to be used in the computation. It must be “dot”, “max”, or “min”.

Returns :

clustering : dictionary

A dictionary keyed by node with the clustering coefficient value.

See also

robins_alexander_clustering, square_clustering, average_clustering


[R158](1, 2) Latapy, Matthieu, Clémence Magnien, and Nathalie Del Vecchio (2008). Basic notions for the analysis of large two-mode networks. Social Networks 30(1), 31–48.


>>> from networkx.algorithms import bipartite
>>> G = nx.path_graph(4) # path graphs are bipartite
>>> c = bipartite.clustering(G) 
>>> c[0]
>>> c = bipartite.clustering(G,mode='min') 
>>> c[0]