<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _parse_indices(self, indices):
 r""" This private method accepts a list of pores or throats and returns a properly structured Numpy array of indices. Parameters indices : multiple options This argument can accept numerous different data types including boolean masks, integers and arrays. Returns ------- A Numpy array of indices. Notes ----- This method should only be called by the method that is actually using the locations, to avoid calling it multiple times. """

        if indices is None:
            indices = sp.array([], ndmin=1, dtype=int)
        locs = sp.array(indices, ndmin=1)
        # If boolean array, convert to indices
        if locs.dtype == bool:
            if sp.size(locs) == self.Np:
                locs = self.Ps[locs]
            elif sp.size(locs) == self.Nt:
                locs = self.Ts[locs]
            else:
                raise Exception('Mask of locations must be either ' +
                                'Np nor Nt long')
        locs = locs.astype(dtype=int)
        return locs