optimal_leaf_ordering#
- scipy.cluster.hierarchy.optimal_leaf_ordering(Z, y, metric='euclidean')[Quelle]#
Gegebene eine Linkagematrix Z und Distanzen, ordnen Sie den geschnittenen Baum neu an.
- Parameter:
- Zndarray
Die hierarchische Clusterbildung, kodiert als Linkagematrix. Weitere Informationen zur Rückgabestruktur und zum Algorithmus finden Sie unter
linkage.- yndarray
Die kondensierte Distanzmatrix, aus der Z generiert wurde. Alternativ kann eine Sammlung von m Beobachtungsvektoren in n Dimensionen als m x n-Array übergeben werden.
- metricstr oder Funktion, optional
Die Distanzmetrik, die verwendet werden soll, falls y eine Sammlung von Beobachtungsvektoren ist; wird andernfalls ignoriert. Eine Liste gültiger Distanzmetriken finden Sie in der Funktion
pdist. Es kann auch eine benutzerdefinierte Distanzfunktion verwendet werden.
- Rückgabe:
- Z_orderedndarray
Eine Kopie der Linkagematrix Z, neu geordnet, um die Distanz zwischen benachbarten Blättern zu minimieren.
Hinweise
optimal_leaf_orderingverfügt über experimentelle Unterstützung für Python Array API Standard-kompatible Backends zusätzlich zu NumPy. Bitte erwägen Sie, diese Funktionen zu testen, indem Sie eine UmgebungsvariableSCIPY_ARRAY_API=1setzen und CuPy-, PyTorch-, JAX- oder Dask-Arrays als Array-Argumente bereitstellen. Die folgenden Kombinationen von Backend und Gerät (oder anderer Fähigkeit) werden unterstützt.Bibliothek
CPU
GPU
NumPy
✅
n/a
CuPy
n/a
⛔
PyTorch
✅
⛔
JAX
✅
⛔
Dask
⚠️ führt Chunks zusammen
n/a
Siehe Unterstützung für den Array API Standard für weitere Informationen.
Beispiele
>>> 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)