scipy.cluster.hierarchy.

to_mlab_linkage#

scipy.cluster.hierarchy.to_mlab_linkage(Z)[source]#

将链接矩阵转换为与 MATLAB(TM) 兼容的矩阵。

将此模块的链接函数生成的链接矩阵 Z 转换为与 MATLAB(TM) 兼容的矩阵。 返回的链接矩阵删除了最后一列,并将聚类索引转换为 1..N 索引。

参数:
Zndarray

scipy.cluster.hierarchy 生成的链接矩阵。

返回:
to_mlab_linkagendarray

与 MATLAB(TM) 的层次聚类函数兼容的链接矩阵。

返回的链接矩阵删除了最后一列,并将聚类索引转换为 1..N 索引。

参见

linkage

有关链接矩阵是什么的描述。

from_mlab_linkage

从 Matlab 转换为 SciPy 格式。

注释

to_mlab_linkage 除了 NumPy 之外,还实验性地支持 Python Array API Standard 兼容后端。 请考虑通过设置环境变量 SCIPY_ARRAY_API=1 并提供 CuPy、PyTorch、JAX 或 Dask 数组作为数组参数来测试这些功能。 支持以下后端和设备(或其他功能)的组合。

CPU

GPU

NumPy

不适用

CuPy

不适用

PyTorch

JAX

Dask

不适用

有关更多信息,请参见 对数组 API 标准的支持

示例

>>> from scipy.cluster.hierarchy import ward, to_mlab_linkage
>>> from scipy.spatial.distance import pdist
>>> X = [[0, 0], [0, 1], [1, 0],
...      [0, 4], [0, 3], [1, 4],
...      [4, 0], [3, 0], [4, 1],
...      [4, 4], [3, 4], [4, 3]]
>>> Z = ward(pdist(X))
>>> Z
array([[ 0.        ,  1.        ,  1.        ,  2.        ],
       [ 3.        ,  4.        ,  1.        ,  2.        ],
       [ 6.        ,  7.        ,  1.        ,  2.        ],
       [ 9.        , 10.        ,  1.        ,  2.        ],
       [ 2.        , 12.        ,  1.29099445,  3.        ],
       [ 5.        , 13.        ,  1.29099445,  3.        ],
       [ 8.        , 14.        ,  1.29099445,  3.        ],
       [11.        , 15.        ,  1.29099445,  3.        ],
       [16.        , 17.        ,  5.77350269,  6.        ],
       [18.        , 19.        ,  5.77350269,  6.        ],
       [20.        , 21.        ,  8.16496581, 12.        ]])

创建链接矩阵 Z 后,我们可以使用 scipy.cluster.hierarchy.to_mlab_linkage 将其转换为 MATLAB 格式

>>> mZ = to_mlab_linkage(Z)
>>> mZ
array([[  1.        ,   2.        ,   1.        ],
       [  4.        ,   5.        ,   1.        ],
       [  7.        ,   8.        ,   1.        ],
       [ 10.        ,  11.        ,   1.        ],
       [  3.        ,  13.        ,   1.29099445],
       [  6.        ,  14.        ,   1.29099445],
       [  9.        ,  15.        ,   1.29099445],
       [ 12.        ,  16.        ,   1.29099445],
       [ 17.        ,  18.        ,   5.77350269],
       [ 19.        ,  20.        ,   5.77350269],
       [ 21.        ,  22.        ,   8.16496581]])

新的链接矩阵 mZ 对所有聚类使用 1 索引(而不是 0 索引)。 此外,原始链接矩阵的最后一列已被删除。