'Given a sliced object, modify its indices
to correctly represent the slice.
Parameters
col_slice : Column or mixin
Sliced object
item : slice, list, or ndarray
Slice used to create col_slice
col_len : int
Length of original object'

def slice_indices(self, col_slice, item, col_len):

    from ..table.sorted_array import SortedArray
    if (not getattr(self, '_copy_indices', True)):
        col_slice.info.indices = []
        return col_slice
    elif isinstance(item, slice):
        col_slice.info.indices = [x[item] for x in self.indices]
    elif self.indices:
        if (isinstance(item, np.ndarray) and (item.dtype.kind == 'b')):
            item = np.where(item)[0]
        threshold = 0.6
        small = (len(item) <= (0.6 * col_len))
        col_slice.info.indices = []
        for index in self.indices:
            if (small or isinstance(index, SortedArray)):
                new_index = index.get_slice(col_slice, item)
            else:
                new_index = deepcopy(index)
                new_index.replace_rows(item)
            col_slice.info.indices.append(new_index)
    return col_slice
