optimal_leaf_ordering — SciPy v1.15.2 Manual (original) (raw)
scipy.cluster.hierarchy.
scipy.cluster.hierarchy.optimal_leaf_ordering(Z, y, metric='euclidean')[source]#
Given a linkage matrix Z and distance, reorder the cut tree.
Parameters:
Zndarray
The hierarchical clustering encoded as a linkage matrix. Seelinkage for more information on the return structure and algorithm.
yndarray
The condensed distance matrix from which Z was generated. Alternatively, a collection of m observation vectors in n dimensions may be passed as an m by n array.
metricstr or function, optional
The distance metric to use in the case that y is a collection of observation vectors; ignored otherwise. See the pdist
function for a list of valid distance metrics. A custom distance function can also be used.
Returns:
Z_orderedndarray
A copy of the linkage matrix Z, reordered to minimize the distance between adjacent leaves.
Examples
import numpy as np from scipy.cluster import hierarchy rng = np.random.default_rng() X = rng.standard_normal((10, 10)) Z = hierarchy.ward(X) hierarchy.leaves_list(Z) array([0, 3, 1, 9, 2, 5, 7, 4, 6, 8], dtype=int32) hierarchy.leaves_list(hierarchy.optimal_leaf_ordering(Z, X)) array([3, 0, 2, 5, 7, 4, 8, 6, 9, 1], dtype=int32)