def resample(self,N,minval=None,maxval=None,log=False,res=1e4):
        """Returns random samples generated according to the distribution

        Mirrors basic functionality of `rvs` method for `scipy.stats`
        random variates.  Implemented by mapping uniform numbers onto the
        inverse CDF using a closest-matching grid approach.

        Parameters
        ----------
        N : int
            Number of samples to return

        minval,maxval : float, optional
            Minimum/maximum values to resample.  Should both usually just be 
            `None`, which will default to `self.minval`/`self.maxval`.

        log : bool, optional
            Whether grid should be log- or linear-spaced.

        res : int, optional
            Resolution of CDF grid used.

        Returns
        -------
        values : ndarray
            N samples.

        Raises
        ------
        ValueError
            If maxval/minval are +/- infinity, this doesn't work because of
            the grid-based approach.

        """
        N = int(N)
        if minval is None:
            if hasattr(self,'minval_cdf'):
                minval = self.minval_cdf
            else:
                minval = self.minval
        if maxval is None:
            if hasattr(self,'maxval_cdf'):
                maxval = self.maxval_cdf
            else:
                maxval = self.maxval

        if maxval==np.inf or minval==-np.inf:
            raise ValueError('must have finite upper and lower bounds to resample. (set minval, maxval kws)')

        u = rand.random(size=N)
        if log:
            vals = np.logspace(log10(minval),log10(maxval),res)
        else:
            vals = np.linspace(minval,maxval,res)
            
        #sometimes cdf is flat.  so ys will need to be uniqued
        ys,yinds = np.unique(self.cdf(vals), return_index=True)
        vals = vals[yinds]
        

        inds = np.digitize(u,ys)
        return vals[inds]
def resample ( self , N , minval = None , maxval = None , log = False , res = 1e4 ) : N = int ( N ) if minval is None : if hasattr ( self , 'minval_cdf' ) : minval = self . minval_cdf else : minval = self . minval if maxval is None : if hasattr ( self , 'maxval_cdf' ) : maxval = self . maxval_cdf else : maxval = self . maxval if maxval == np . inf or minval == - np . inf : raise ValueError ( 'must have finite upper and lower bounds to resample. (set minval, maxval kws)' ) u = rand . random ( size = N ) if log : vals = np . logspace ( log10 ( minval ) , log10 ( maxval ) , res ) else : vals = np . linspace ( minval , maxval , res ) ys , yinds = np . unique ( self . cdf ( vals ) , return_index = True ) vals = vals [ yinds ] inds = np . digitize ( u , ys ) return vals [ inds ]
Returns random samples generated according to the distribution

        Mirrors basic functionality of `rvs` method for `scipy.stats`
        random variates.  Implemented by mapping uniform numbers onto the
        inverse CDF using a closest-matching grid approach.

        Parameters
        ----------
        N : int
            Number of samples to return

        minval,maxval : float, optional
            Minimum/maximum values to resample.  Should both usually just be 
            `None`, which will default to `self.minval`/`self.maxval`.

        log : bool, optional
            Whether grid should be log- or linear-spaced.

        res : int, optional
            Resolution of CDF grid used.

        Returns
        -------
        values : ndarray
            N samples.

        Raises
        ------
        ValueError
            If maxval/minval are +/- infinity, this doesn't work because of
            the grid-based approach.