class_docstr: The condensed tree structure, which provides a simplified or smoothed version
  of the :class:`~hdbscan.plots.SingleLinkageTree`.
  
  Parameters
  ----------
  condensed_tree_array : numpy recarray from :class:`~hdbscan.HDBSCAN`
      The raw numpy rec array version of the condensed tree as produced
      internally by hdbscan.
  
  cluster_selection_method : string, optional (default 'eom')
      The method of selecting clusters. One of 'eom' or 'leaf'
  
  allow_single_cluster : Boolean, optional (default False)
      Whether to allow the root cluster as the only selected cluster
class_docstr_tok: ["The","condensed","tree","structure",",","which","provides","a","simplified","or","smoothed","version","of","the",":","class",":","`","~hdbscan.plots.SingleLinkageTree","`",".","Parameters","--","--","--","--","--","condensed_tree_array",":","numpy","recarray","from",":","class",":","`","~hdbscan.HDBSCAN","`","The","raw","numpy","rec","array","version","of","the","condensed","tree","as","produced","internally","by","hdbscan",".","cluster_selection_method",":","string",",","optional","(","default","'eom","'",")","The","method","of","selecting","clusters",".","One","of","'eom","'","or","'leaf'","allow_single_cluster",":","Boolean",",","optional","(","default","False",")","Whether","to","allow","the","root","cluster","as","the","only","selected","cluster"]
code: def _select_clusters(self):
      if self.cluster_selection_method == "eom":
          stability = compute_stability(self._raw_tree)
          if self.allow_single_cluster:
              node_list = sorted(stability.keys(), reverse=True)
          else:
              node_list = sorted(stability.keys(), reverse=True)[:-1]
          cluster_tree = self._raw_tree[
              self._raw_tree["child_size"] > 1
          ]
          is_cluster = {cluster: True for cluster in node_list}
  
          for node in node_list:
              child_selection = cluster_tree["parent"] == node
              subtree_stability = np.sum(
                  [
                      stability[child]
                      for child in cluster_tree["child"][
                          child_selection
                      ]
                  ]
              )
  
              if subtree_stability > stability[node]:
                  is_cluster[node] = False
                  stability[node] = subtree_stability
              else:
                  for sub_node in _bfs_from_cluster_tree(
                      cluster_tree, node
                  ):
                      if sub_node != node:
                          is_cluster[sub_node] = False
  
          return sorted(
              [cluster for cluster in is_cluster if is_cluster[cluster]]
          )
  
      elif self.cluster_selection_method == "leaf":
          return _get_leaves(self._raw_tree)
      else:
          raise ValueError(
              "Invalid Cluster Selection Method: %s\n"
              'Should be one of: "eom", "leaf"\n'
          )
  
imports: import numpy
  from scipy.cluster.hierarchy import dendrogram
  from sklearn.manifold import TSNE
  from sklearn.decomposition import PCA
  from sklearn.metrics import pairwise_distances
  from warnings import warn
  from ._hdbscan_tree import compute_stability, labelling_at_cut, recurse_leaf_dfs
label_desc: Use image node_id 3 for calling the CondensedTree obj's underlying member method code with example usage: obj._select_clusters() and returns: sorted, _get_leaves