connected_components#
- scipy.sparse.csgraph.connected_components(csgraph, directed=True, connection='weak', return_labels=True)#
Analysiert die verbundenen Komponenten eines dünnbesetzten Graphen
Hinzugefügt in Version 0.11.0.
- Parameter:
- csgrapharray_like oder dünnbesetzte Array oder Matrix
Die N x N Matrix, die den dünnbesetzten Graphen repräsentiert. Die Eingabe csgraph wird für die Berechnung in das csr-Format konvertiert.
- directedbool, optional
Wenn True (Standard), dann wird auf einem gerichteten Graphen gearbeitet: es wird nur von Punkt i zu Punkt j entlang der Pfade csgraph[i, j] navigiert. Wenn False, dann wird der kürzeste Pfad in einem ungerichteten Graphen gesucht: der Algorithmus kann von Punkt i zu j entlang csgraph[i, j] oder csgraph[j, i] fortschreiten.
- connectionstr, optional
[‘weak’|’strong’]. Für gerichtete Graphen wird die Art der Verbindung verwendet. Knoten i und j sind stark verbunden, wenn ein Pfad sowohl von i nach j als auch von j nach i existiert. Ein gerichteter Graph ist schwach verbunden, wenn das Ersetzen aller seiner gerichteten Kanten durch ungerichtete Kanten einen verbundenen (ungerichteten) Graphen ergibt. Wenn directed == False, wird dieses Schlüsselwort nicht referenziert.
- return_labelsbool, optional
Wenn True (Standard), werden die Labels für jede der verbundenen Komponenten zurückgegeben.
- Rückgabe:
- n_components: int
Die Anzahl der verbundenen Komponenten.
- labels: ndarray
Das Längen-N-Array der Labels der verbundenen Komponenten.
Referenzen
[1]D. J. Pearce, „An Improved Algorithm for Finding the Strongly Connected Components of a Directed Graph“, Technical Report, 2005
Beispiele
>>> 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) <Compressed Sparse Row sparse array of dtype 'int64' with 4 stored elements and shape (5, 5)> Coords Values (0, 1) 1 (0, 2) 1 (1, 2) 1 (3, 4) 1
>>> n_components, labels = connected_components(csgraph=graph, directed=False, return_labels=True) >>> n_components 2 >>> labels array([0, 0, 0, 1, 1], dtype=int32)