Module « scipy.sparse.csgraph »
Signature de la fonction construct_dist_matrix
Description
construct_dist_matrix.__doc__
construct_dist_matrix(graph, predecessors, directed=True, null_value=np.inf)
Construct distance matrix from a predecessor matrix
.. versionadded:: 0.11.0
Parameters
----------
graph : array_like or sparse
The N x N matrix representation of a directed or undirected graph.
If dense, then non-edges are indicated by zeros or infinities.
predecessors : array_like
The N x N matrix of predecessors of each node (see Notes below).
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 operate on an undirected graph: the algorithm can
progress from point i to j along csgraph[i, j] or csgraph[j, i].
null_value : bool, optional
value to use for distances between unconnected nodes. Default is
np.inf
Returns
-------
dist_matrix : ndarray
The N x N matrix of distances between nodes along the path specified
by the predecessor matrix. If no path exists, the distance is zero.
Notes
-----
The predecessor matrix is of the form returned by
`shortest_path`. Row i of the predecessor matrix contains
information on the shortest paths from point i: each entry
predecessors[i, j] gives the index of the previous node in the path from
point i to point j. If no path exists between point i and j, then
predecessors[i, j] = -9999
Examples
--------
>>> from scipy.sparse import csr_matrix
>>> from scipy.sparse.csgraph import construct_dist_matrix
>>> graph = [
... [0, 1 , 2, 0],
... [0, 0, 0, 1],
... [0, 0, 0, 3],
... [0, 0, 0, 0]
... ]
>>> graph = csr_matrix(graph)
>>> print(graph)
(0, 1) 1
(0, 2) 2
(1, 3) 1
(2, 3) 3
>>> pred = np.array([[-9999, 0, 0, 2],
... [1, -9999, 0, 1],
... [2, 0, -9999, 2],
... [1, 3, 3, -9999]], dtype=np.int32)
>>> construct_dist_matrix(graph=graph, predecessors=pred, directed=False)
array([[ 0., 1., 2., 5.],
[ 1., 0., 3., 1.],
[ 2., 3., 0., 3.],
[ 2., 1., 3., 0.]])
Améliorations / Corrections
Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.
Emplacement :
Description des améliorations :