to_mlab_linkage — SciPy v1.16.0 Manual (original) (raw)
scipy.cluster.hierarchy.
scipy.cluster.hierarchy.to_mlab_linkage(Z)[source]#
Convert a linkage matrix to a MATLAB(TM) compatible one.
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:
Zndarray
A linkage matrix generated by scipy.cluster.hierarchy
.
Returns:
to_mlab_linkagendarray
A 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..N
indexing.
Notes
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.
See Support for the array API standard 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.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. ]])
After a linkage matrix Z
has been created, we can usescipy.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.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]])
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.