{ } Raw JSON

bundles / scipy latest / scipy / sparse / csgraph / _traversal / connected_components

cython_function_or_method

scipy.sparse.csgraph._traversal:connected_components

Signature

def   connected_components ( csgraph directed = True connection = weak return_labels = True )

Summary

Analyze the connected components of a sparse graph

Extended Summary

Parameters

csgraph : array_like or sparse array or matrix

The N x N matrix representing the compressed sparse graph. The input csgraph will be converted to csr format for the calculation.

directed : bool, optional

If True (default), then operate on a directed graph: only move from point i to point j along paths csgraph[i, j]. If False, then find the shortest path on an undirected graph: the algorithm can progress from point i to j along csgraph[i, j] or csgraph[j, i].

connection : str, optional

['weak'|'strong']. For directed graphs, the type of connection to use. Nodes i and j are strongly connected if a path exists both from i to j and from j to i. A directed graph is weakly connected if replacing all of its directed edges with undirected edges produces a connected (undirected) graph. If directed == False, this keyword is not referenced.

return_labels : bool, optional

If True (default), then return the labels for each of the connected components.

Returns

: n_components: int

The number of connected components.

: labels: ndarray

The length-N array of labels of the connected components.

Examples

from scipy.sparse import csr_array
from scipy.sparse.csgraph import connected_components
graph = [
[0, 1, 1, 0, 0],
[0, 0, 1, 0, 0],
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 1],
[0, 0, 0, 0, 0]
]
graph = csr_array(graph)
print(graph)
n_components, labels = connected_components(csgraph=graph, directed=False, return_labels=True)
n_components
labels

Aliases

  • scipy.sparse.csgraph.connected_components