code: def _pick_slices(self):
          
  
          self._slices = list()
          self._slices_by_dim = list()
          for view, ns_in_view in zip(self.view_set, self.num_slices):
              # discarding completely empty or almost empty slices.
              dim_size = self._image_shape[view]
              non_empty_slices = np.array([sl for sl in range(dim_size) if self._not_empty(view, sl)])
  
              # sampling according to the chosen strategy
              slices_dim = self._sample_slices_in_dim(view, ns_in_view, non_empty_slices)
              #  the following loop is needed to preserve order, while eliminating duplicates
              # list comprehension over a set(slices_dim) wouldn't preserve order
              uniq_slices = list()
              for sn in slices_dim:
                  if (0 <= sn < dim_size) and sn not in uniq_slices:
                      uniq_slices.append(sn)
  
              self._slices_by_dim.append(slices_dim)
              # adding view and slice # at the same time..
              self._slices.extend([(view, sn) for sn in slices_dim])
docs: Picks the slices to display in each dimension/view,
              skipping any empty slices (without any data at all).