bundles / scipy 1.18.0 / scipy / cluster / hierarchy / _hierarchy_impl / to_mlab_linkage
function
scipy.cluster.hierarchy._hierarchy_impl:to_mlab_linkage
Signature
def to_mlab_linkage(Z)Summary
Convert a linkage matrix to a MATLAB(TM) compatible one.
Extended Summary
Converts a linkage matrix Z generated by the linkage function of this module to a MATLAB(TM) compatible one. The return linkage matrix has the last column removed and the cluster indices are converted to 1..N indexing.
Parameters
Z: ndarrayA linkage matrix generated by
scipy.cluster.hierarchy.
Returns
to_mlab_linkage: ndarrayA linkage matrix compatible with MATLAB(TM)'s hierarchical clustering functions.
The return linkage matrix has the last column removed and the cluster indices are converted to
1..Nindexing.
Notes
Array API Standard Support
to_mlab_linkage has experimental support for Python Array API Standard compatible backends in addition to NumPy. Please consider testing these features by setting an environment variable SCIPY_ARRAY_API=1 and providing CuPy, PyTorch, JAX, or Dask arrays as array arguments. The following combinations of backend and device (or other capability) are supported.
==================== ==================== ==================== Library CPU GPU ==================== ==================== ==================== NumPy ✅ n/a CuPy n/a ✅ PyTorch ✅ ✅ JAX ✅ ✅ Dask ✅ n/a ==================== ==================== ====================
See dev-arrayapi for more information.
Examples
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.29099, 3. ],
[ 5. , 13. , 1.29099, 3. ],
[ 8. , 14. , 1.29099, 3. ],
[11. , 15. , 1.29099, 3. ],
[16. , 17. , 5.7735 , 6. ],
[18. , 19. , 5.7735 , 6. ],
[20. , 21. , 8.16497, 12. ]])
After a linkage matrix ``Z`` has been created, we can use
`scipy.cluster.hierarchy.to_mlab_linkage` to convert it
into MATLAB format:
mZ = to_mlab_linkage(Z)
✓mZ
✗array([[ 1. , 2. , 1. ],
[ 4. , 5. , 1. ],
[ 7. , 8. , 1. ],
[10. , 11. , 1. ],
[ 3. , 13. , 1.29099],
[ 6. , 14. , 1.29099],
[ 9. , 15. , 1.29099],
[12. , 16. , 1.29099],
[17. , 18. , 5.7735 ],
[19. , 20. , 5.7735 ],
[21. , 22. , 8.16497]])
The new linkage matrix ``mZ`` uses 1-indexing for all the
clusters (instead of 0-indexing). Also, the last column of
the original linkage matrix has been dropped.See also
- from_mlab_linkage
transform from Matlab to SciPy format.
- linkage
for a description of what a linkage matrix is.
Aliases
scipy.cluster.hierarchy.to_mlab_linkage