scipy.cluster.hierarchy.
cut_tree#
- scipy.cluster.hierarchy.cut_tree(Z, n_clusters=None, height=None)[source]#
给定一个连接矩阵 Z,返回切割树。
- 参数:
- Zscipy.cluster.linkage 数组
连接矩阵。
- n_clustersarray_like, 可选
切割点处树中的簇的数量。
- heightarray_like, 可选
切割树的高度。仅适用于超度量树。
- 返回值:
- cutree数组
一个数组,指示每个聚集步骤中的组成员身份。即,对于一个完整的切割树,在第一列中,每个数据点都在其自身的簇中。在下一步中,两个节点被合并。最后,所有的单例和非单例簇都在一个组中。如果给定了 n_clusters 或 height,则列对应于 n_clusters 或 height 的列。
说明
cut_tree
除了 NumPy 之外,还实验性地支持与 Python Array API 标准兼容的后端。请考虑通过设置环境变量SCIPY_ARRAY_API=1
并提供 CuPy、PyTorch、JAX 或 Dask 数组作为数组参数来测试这些功能。支持以下后端和设备(或其他功能)的组合。库
CPU
GPU
NumPy
✅
不适用
CuPy
不适用
⛔
PyTorch
⛔
⛔
JAX
⛔
⛔
Dask
⛔
不适用
有关更多信息,请参见 对数组 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