optimal_leaf_ordering#
- scipy.cluster.hierarchy.optimal_leaf_ordering(Z, y, метрика='euclidean')[источник]#
Дана матрица связей Z и расстояние, переупорядочить дерево разрезов.
- Параметры:
- Zndarray
Иерархическая кластеризация, закодированная как матрица связей. См.
linkageдля получения дополнительной информации о структуре возвращаемых данных и алгоритме.- yndarray
Сжатая матрица расстояний, из которой был сгенерирован Z. Альтернативно, коллекция из m векторов наблюдений в n измерениях может быть передана как массив размером m на n.
- метрикаstr или функция, опционально
Метрика расстояния для использования в случае, когда y — это коллекция векторов наблюдений; в противном случае игнорируется. См.
pdistфункция для списка допустимых метрик расстояния. Также может использоваться пользовательская функция расстояния.
- Возвращает:
- Z_orderedndarray
Копия матрицы связей Z, переупорядоченная для минимизации расстояния между соседними листьями.
Примечания
optimal_leaf_orderingимеет экспериментальную поддержку совместимых с Python Array API Standard бэкендов в дополнение к NumPy. Пожалуйста, рассмотрите тестирование этих функций, установив переменную окруженияSCIPY_ARRAY_API=1и предоставление массивов CuPy, PyTorch, JAX или Dask в качестве аргументов массива. Поддерживаются следующие комбинации бэкенда и устройства (или других возможностей).Библиотека
CPU
GPU
NumPy
✅
н/д
CuPy
н/д
⛔
PyTorch
✅
⛔
JAX
✅
⛔
Dask
⚠️ объединяет блоки
н/д
См. Поддержка стандарта array API для получения дополнительной информации.
Примеры
>>> 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)