title: Clustering and deleting small cluster sizes using ndi.label
body: <p>I am writing a code to cluster 2D image field of cloud mask(1s and 0s). I use ndi.label to detect all areas with marker =1 that are connected and give them a unique integer value. I use np.unique to calculate total number of clusters (2977) and size of each cluster(np.unique(return_counts). Now I want to delete the clusters that are less than 0.1* maximum cluster size. So first I have to find these clusters and then change their value in the field again to 0, but I dont know whats the best way to do that. Is it possible to do that with np.unique (return_inverse)?</p>
  <pre><code>    dumdat = dat2D_mask[:,:]
  
      labeled_obj,n_obj  = ndi.label(dumdat)
  
      labels, cluster_n,indices = np.unique(labeled_obj.ravel(),return_counts=True,return_inverse=True)   
  
      nclust = len(labels)
      if nclust&gt;1:
  
        cluster_a = cluster_n * dx * dy
        cluster_l = np.sqrt( cluster_a )
        l_min_0 = np.nanmin(cluster_l[1:])   
        l_max_0 = np.nanmax(cluster_l[1:])
  </code></pre>