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!')
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.