to_tree#
- scipy.cluster.hierarchy.to_tree(Z, rd=False)[source]#
Convert a linkage matrix into an easy-to-use tree object.
The reference to the root
ClusterNodeobject is returned (by default).Each
ClusterNodeobject has aleft,right,dist,id, andcountattribute. The left and right attributes point to ClusterNode objects that were combined to generate the cluster. If both are None then theClusterNodeobject is a leaf node, its count must be 1, and its distance is meaningless but set to 0.Note: This function is provided for the convenience of the library user. ClusterNodes are not used as input to any of the functions in this library.
- Parameters:
- Zndarray
The linkage matrix in proper form (see the
linkagefunction documentation).- rdbool, optional
When False (default), a reference to the root
ClusterNodeobject is returned. Otherwise, a tuple(r, d)is returned.ris a reference to the root node whiledis a list ofClusterNodeobjects - one per original entry in the linkage matrix plus entries for all clustering steps. If a cluster id is less than the number of samplesnin the data that the linkage matrix describes, then it corresponds to a singleton cluster (leaf node). Seelinkagefor more information on the assignment of cluster ids to clusters.
- Returns:
- treeClusterNode or tuple (ClusterNode, list of ClusterNode)
If
rdis False, aClusterNode. Ifrdis True, a list of length2*n - 1, withnthe number of samples. See the description of rd above for more details.
See also
Examples
>>> import numpy as np >>> from scipy.cluster import hierarchy >>> rng = np.random.default_rng() >>> x = rng.random((5, 2)) >>> Z = hierarchy.linkage(x) >>> hierarchy.to_tree(Z) <scipy.cluster.hierarchy.ClusterNode object at ... >>> rootnode, nodelist = hierarchy.to_tree(Z, rd=True) >>> rootnode <scipy.cluster.hierarchy.ClusterNode object at ... >>> len(nodelist) 9