'Subtract BiHemiLabels.'

def __sub__(self, other):

    if isinstance(other, BiHemiLabel):
        if (self.hemi == 'lh'):
            return (self - other.lh)
        else:
            return (self - other.rh)
    elif isinstance(other, Label):
        if (self.subject != other.subject):
            raise ValueError(('Label    subject    parameters    must    match,    got    "%s"    and    "%s".    Consider    setting    the    subject    parameter    on    initialization,    or    setting    label.subject    manually    before    combining    labels.' % (self.subject, other.subject)))
    else:
        raise TypeError(('Need:    Label    or    BiHemiLabel.    Got:    %r' % other))
    if (self.hemi == other.hemi):
        keep = np.in1d(self.vertices, other.vertices, True, invert=True)
    else:
        keep = np.arange(len(self.vertices))
    name = ('%s    -    %s' % ((self.name or 'unnamed'), (other.name or 'unnamed')))
    return Label(self.vertices[keep], self.pos[keep], self.values[keep], self.hemi, self.comment, name, None, self.subject, self.color, self.verbose)
