leaves_list#
- scipy.cluster.hierarchy.leaves_list(Z)[source]#
Return a list of leaf node ids.
The return corresponds to the observation vector index as it appears in the tree from left to right. Z is a linkage matrix.
- Parameters:
- Zndarray
The hierarchical clustering encoded as a matrix. Z is a linkage matrix. See
linkage
for more information.
- Returns:
- leaves_listndarray
The list of leaf node ids.
See also
dendrogram
for information about dendrogram structure.
Notes
leaves_list
has experimental support for Python Array API Standard compatible backends in addition to NumPy. Please consider testing these features by setting an environment variableSCIPY_ARRAY_API=1
and providing CuPy, PyTorch, JAX, or Dask arrays as array arguments. The following combinations of backend and device (or other capability) are supported.Library
CPU
GPU
NumPy
✅
n/a
CuPy
n/a
⛔
PyTorch
✅
⛔
JAX
✅
⛔
Dask
⚠️ merges chunks
n/a
See Support for the array API standard for more information.
Examples
>>> from scipy.cluster.hierarchy import ward, dendrogram, leaves_list >>> from scipy.spatial.distance import pdist >>> from matplotlib import pyplot as plt
>>> X = [[0, 0], [0, 1], [1, 0], ... [0, 4], [0, 3], [1, 4], ... [4, 0], [3, 0], [4, 1], ... [4, 4], [3, 4], [4, 3]]
>>> Z = ward(pdist(X))
The linkage matrix
Z
represents a dendrogram, that is, a tree that encodes the structure of the clustering performed.scipy.cluster.hierarchy.leaves_list
shows the mapping between indices in theX
dataset and leaves in the dendrogram:>>> leaves_list(Z) array([ 2, 0, 1, 5, 3, 4, 8, 6, 7, 11, 9, 10], dtype=int32)
>>> fig = plt.figure(figsize=(25, 10)) >>> dn = dendrogram(Z) >>> plt.show()