scipy.cluster.hierarchy.

to_mlab_linkage#

scipy.cluster.hierarchy.to_mlab_linkage(Z)[источник]#

Преобразование матрицы связей в совместимую с MATLAB(TM).

Преобразует матрицу связей Z сгенерированную функцией linkage этого модуля в совместимую с MATLAB(TM). Возвращаемая матрица связей имеет удалённый последний столбец, а индексы кластеров преобразуются в 1..N индексация.

Параметры:
Zndarray

Матрица связей, сгенерированная scipy.cluster.hierarchy.

Возвращает:
to_mlab_linkagendarray

Матрица связей, совместимая с функциями иерархической кластеризации MATLAB(TM).

Возвращаемая матрица связей имеет удалённый последний столбец, и индексы кластеров преобразуются в 1..N индексация.

Смотрите также

linkage

для описания того, что такое матрица связей.

from_mlab_linkage

преобразование из формата Matlab в формат SciPy.

Примечания

to_mlab_linkage имеет экспериментальную поддержку совместимых с Python Array API Standard бэкендов в дополнение к NumPy. Пожалуйста, рассмотрите тестирование этих функций, установив переменную окружения SCIPY_ARRAY_API=1 и предоставление массивов CuPy, PyTorch, JAX или Dask в качестве аргументов массива. Поддерживаются следующие комбинации бэкенда и устройства (или других возможностей).

Библиотека

CPU

GPU

NumPy

н/д

CuPy

н/д

PyTorch

JAX

Dask

н/д

См. Поддержка стандарта array 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-индексации). Также последний столбец исходной матрицы связей был удален.