#### Previous topic

scipy.cluster.hierarchy.to_tree

#### Next topic

scipy.cluster.hierarchy.is_valid_im

# scipy.cluster.hierarchy.cut_tree

`scipy.cluster.hierarchy.``cut_tree`(Z, n_clusters=None, height=None)

  Given a linkage matrix Z, return the cut tree.

  Parameters:

  Z : scipy.cluster.linkage array

  > The linkage matrix.

  n_clusters : array_like, optional

  > Number of clusters in the tree at the cut point.

  height : array_like, optional

  > The height at which to cut the tree. Only possible for ultrametric trees.

  Returns:

  cutree : array

  > An array indicating group membership at each agglomeration step. I.e., for a full cut tree, in the first column each data point is in its own cluster. At the next step, two nodes are merged. Finally all singleton and non-singleton clusters are in one group. If n_clusters or height is given, the columns correspond to the columns of n_clusters or height.

  Examples

      >>> from scipy import cluster
      >>> np.random.seed(23)
      >>> X = np.random.randn(50, 4)
      >>> Z = cluster.hierarchy.ward(X)
      >>> cutree = cluster.hierarchy.cut_tree(Z, n_clusters=[5, 10])
      >>> cutree[:10]
      array([[0, 0],
             [1, 1],
             [2, 2],
             [3, 3],
             [3, 4],
             [2, 2],
             [0, 0],
             [1, 5],
             [3, 6],
             [4, 7]])