scipy.cluster.hierarchy.
optimal_leaf_ordering#
- scipy.cluster.hierarchy.optimal_leaf_ordering(Z, y, metric='euclidean')[source]#
给定连锁矩阵 Z 和距离,重新排序切割树。
- 参数:
- Zndarray
编码为连锁矩阵的层次聚类。请参阅
linkage
了解有关返回结构和算法的更多信息。- yndarray
生成 Z 的聚合距离矩阵。或通过将 m x n 阵列作为 m 个观测向量的集合传递。
- metricstr 或函数,默认为可选
在 y 为观测向量的集合的情况下使用的距离度量;否则忽略。请参阅
pdist
函数以获取有效距离度量的列表。也可以使用自定义距离函数。
- 返回:
- Z_orderedndarray
连锁矩阵 Z 的副本,重新排序为最小化相邻树叶之间的距离。
示例
>>> 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)