scipy.cluster.hierarchy.

from_mlab_linkage#

scipy.cluster.hierarchy.from_mlab_linkage(Z)[Quelle]#

Konvertiert eine von MATLAB(TM) generierte Linkage-Matrix in eine neue, mit diesem Modul kompatible Linkage-Matrix.

Die Konvertierung führt zwei Dinge durch:

  • Die Indizes werden von der Form 1..N in die Form 0..(N-1) konvertiert, und

  • eine vierte Spalte Z[:,3] wird hinzugefügt, wobei Z[i,3] die Anzahl der ursprünglichen Beobachtungen (Blätter) im Nicht-Einzelelement-Cluster i darstellt.

Diese Funktion ist nützlich beim Laden von Linkages aus alten Datendateien, die von MATLAB generiert wurden.

Parameter:
Zndarray

Eine von MATLAB(TM) generierte Linkage-Matrix.

Rückgabe:
ZSndarray

Eine Linkage-Matrix, die mit scipy.cluster.hierarchy kompatibel ist.

Siehe auch

linkage

für eine Beschreibung, was eine Linkage-Matrix ist.

to_mlab_linkage

Konvertiert vom SciPy- in das MATLAB-Format.

Hinweise

from_mlab_linkage bietet experimentelle Unterstützung für Python Array API Standard-kompatible Backends zusätzlich zu NumPy. Bitte erwägen Sie, diese Funktionen zu testen, indem Sie eine Umgebungsvariable SCIPY_ARRAY_API=1 setzen und CuPy-, PyTorch-, JAX- oder Dask-Arrays als Array-Argumente übergeben. Die folgenden Kombinationen von Backend und Gerät (oder anderer Fähigkeit) werden unterstützt.

Bibliothek

CPU

GPU

NumPy

n/a

CuPy

n/a

PyTorch

JAX

Dask

⚠️ führt Chunks zusammen

n/a

Siehe Unterstützung für den Array API Standard für weitere Informationen.

Beispiele

>>> import numpy as np
>>> from scipy.cluster.hierarchy import ward, from_mlab_linkage

Gegeben sei eine Linkage-Matrix im MATLAB-Format mZ, wir können scipy.cluster.hierarchy.from_mlab_linkage verwenden, um sie in das SciPy-Format zu importieren.

>>> mZ = np.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]])
>>> Z = from_mlab_linkage(mZ)
>>> 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.        ]])

Wie erwartet, enthält die zurückgegebene Linkage-Matrix Z eine zusätzliche Spalte, die die Anzahl der ursprünglichen Stichproben in jedem Cluster zählt. Außerdem werden alle Cluster-Indizes um 1 reduziert (das MATLAB-Format verwendet 1-Indizierung, während SciPy 0-Indizierung verwendet).