cut_tree#
- scipy.cluster.hierarchy.cut_tree(Z, n_clusters=None, height=None)[источник]#
По заданной матрице связей Z вернуть обрезанное дерево.
- Параметры:
- Zмассив scipy.cluster.linkage
Матрица связей.
- n_clustersarray_like, необязательный
Количество кластеров в дереве в точке разреза.
- heightarray_like, необязательный
Высота, на которой производится обрезка дерева. Возможно только для ультраметрических деревьев.
- Возвращает:
- cutreeмассив
Массив, указывающий принадлежность к группе на каждом шаге агломерации. Т.е., для полного разрезанного дерева, в первом столбце каждая точка данных находится в своем собственном кластере. На следующем шаге два узла объединяются. Наконец, все одиночные и неодиночные кластеры находятся в одной группе. Если n_clusters или height заданы, столбцы соответствуют столбцам n_clusters или height.
Примечания
cut_treeимеет экспериментальную поддержку совместимых с Python Array API Standard бэкендов в дополнение к NumPy. Пожалуйста, рассмотрите тестирование этих функций, установив переменную окруженияSCIPY_ARRAY_API=1и предоставление массивов CuPy, PyTorch, JAX или Dask в качестве аргументов массива. Поддерживаются следующие комбинации бэкенда и устройства (или других возможностей).Библиотека
CPU
GPU
NumPy
✅
н/д
CuPy
н/д
⛔
PyTorch
⛔
⛔
JAX
⛔
⛔
Dask
⛔
н/д
См. Поддержка стандарта array API для получения дополнительной информации.
Примеры
>>> from scipy import cluster >>> import numpy as np >>> from numpy.random import default_rng >>> rng = default_rng() >>> X = rng.random((50, 4)) >>> Z = cluster.hierarchy.ward(X) >>> cutree = cluster.hierarchy.cut_tree(Z, n_clusters=[5, 10]) >>> cutree[:10] array([[0, 0], [1, 1], [2, 2], [3, 3], [3, 4], [2, 2], [0, 0], [1, 5], [3, 6], [4, 7]]) # random