docs: def filter_data(self, isos, limit, delta=True):
          '''
          This subroutine filters isotopic values according to the limit
          you give.  You can filter in ratio or in delta space.
  
          Parameters
          ----------
          isos : list
              isotopes you want to filter for, e.g., give as
              ['Si-28', 'Si-30'] for the 28/30 ratio.
          limit : string
              what do you want to filter for, e.g., ratio or delta > 100,
              then give '>100'.
          delta : boolean, optional
              do you wanna filter in delta space, then set to True,
              otherwise to False.  The default is True.
  
          '''
  
          # check availability
          dat_index, delta_b, ratio_b = self.check_availability(isos)
          if dat_index == -1:
              print('Isotopes selected are not available. Check i.datadict (where i is your instance) for availability of isotopes.')
              return None
  
          # select if larger or smaller and define limit
          if limit[0:1] == '>':
              comperator = 'gt'
          elif limit[0:1] == '<':
              comperator = 'st'
          else:
              print('Comperator not specified. Limit must be given as \'>5.\' for example.')
              return None
  
          try:
              limit = float(limit[1:len(limit)])
          except ValueError:
              print('Limit must be given as \'>5.\' for example.')
              return None
  
          # now calculate the actual limit to compare with, depending on if it delta or not or whatsoever
          if delta == delta_b:   # input and available same
              if ratio_b:   # one over
                  if delta:
                      tmp = self.delta_to_ratio(isos,limit,oneover=True)
                      comp_lim = self.ratio_to_delta(isos,tmp)   # check
                  else:
                      comp_lim = old_div(1.,limit)   # check
  
              else:   # all fine
                  comp_lim = limit
  
          else:   # input and availability not the same
              if ratio_b:   # one over
                  if delta:   # delta given, ratio one over wanted
                      comp_lim = self.delta_to_ratio(isos,limit,oneover=True)
                  else:   # ratio given, delta one over wanted
                      comp_lim = self.ratio_to_delta(isos,limit,oneover=True)
              else:   # not one over
                  if delta:   # delta given, ratio wanted
                      comp_lim = self.delta_to_ratio(isos,limit)
                  else:
                      comp_lim = self.ratio_to_delta(isos,limit)
  
          # indexing vector
          indexing = []
          for i in range(len(self.data)):
              dat_val = self.data[i][dat_index]
              if comperator == 'st':
                  if dat_val < comp_lim:
                      indexing.append(i)
              else:
                  if dat_val > comp_lim:
                      indexing.append(i)
  
          # now filter data
          if len(indexing) > 0:
              desc_tmp = np.zeros((len(indexing),len(self.header_desc)),dtype='|S1024')
              data_tmp = np.zeros((len(indexing),len(self.header_data)))
              for i in range(len(indexing)):
                  for j in range(len(self.header_desc)):
                      desc_tmp[i][j] = self.desc[indexing[i]][j]
                  for k in range(len(self.header_data)):
                      data_tmp[i][k] = self.data[indexing[i]][k]
              self.desc = desc_tmp
              self.data = data_tmp
          else:
              print('No filter selected!')