Python scipy.special 模块,erfinv() 实例源码

我们从Python开源项目中,提取了以下18个代码示例,用于说明如何使用scipy.special.erfinv()

项目:iota    作者:amaneureka    | 项目源码 | 文件源码
def GaussianCdfInverse(p, mu=0, sigma=1):
    """Evaluates the inverse CDF of the gaussian distribution.

    See http://en.wikipedia.org/wiki/Normal_distribution#Quantile_function  

    Args:
        p: float

        mu: mean parameter

        sigma: standard deviation parameter

    Returns:
        float
    """
    x = ROOT2 * erfinv(2 * p - 1)
    return mu + x * sigma
项目:ThinkX    作者:AllenDowney    | 项目源码 | 文件源码
def GaussianCdfInverse(p, mu=0, sigma=1):
    """Evaluates the inverse CDF of the gaussian distribution.

    See http://en.wikipedia.org/wiki/Normal_distribution#Quantile_function  

    Args:
        p: float

        mu: mean parameter

        sigma: standard deviation parameter

    Returns:
        float
    """
    x = ROOT2 * erfinv(2 * p - 1)
    return mu + x * sigma
项目:paysage    作者:drckf    | 项目源码 | 文件源码
def normal_inverse_cdf(p: T.Tensor) -> T.Tensor:
    """
    Elementwise inverse cumulative distribution function of the standard normal
    distribution.

    For the inverse CDF of a normal distributon with mean u and standard deviation sigma,
    use u + sigma * normal_inverse_cdf(p).

    Args:
        p (tensor bounded in (0,1))

    Returns:
        tensor: Elementwise inverse cdf

    """
    return SQRT2*erfinv(2*numpy.clip(p, a_min=EPSILON, a_max=1-EPSILON)-1)
项目:rswarp    作者:radiasoft    | 项目源码 | 文件源码
def compute_cutoff_beta(T, frac=0.99):
    """Returns the velocity for which the fraction frac of a beam emitted from a thermionic
    cathode with temperature T move more slowly in the longitudinal (z) direction.

    Arguments:
        T (float)               : temperature of the cathode in K
        frac (Optional[float])  : Fraction of beam with vz < cutoff. Defaults to 0.99.

    Returns:
        beta_cutoff (float)     : cutoff velocity divided by c.

    """

    sigma = np.sqrt(2*kb_J*T/m)  # effective sigma for half-Gaussian distribution

    multiplier = erfinv(frac)  # the multiplier on sigma accounting for frac of the distribution

    return multiplier*sigma/c
项目:MOSFiT    作者:guillochon    | 项目源码 | 文件源码
def prior_cdf(self, u):
        """Evaluate cumulative density function."""
        value = (erfinv(2.0 * u - 1.0) * np.sqrt(2.)) * self._sigma + self._mu
        value = (value - self._min_value) / (self._max_value - self._min_value)

        return np.clip(value, 0.0, 1.0)
项目:melanoma-transfer    作者:learningtitans    | 项目源码 | 文件源码
def normal(sample, avg=0.0, std=1.0):
    return avg + std * np.sqrt(2) * erfinv(2 * sample - 1)
项目:uncover-ml    作者:GeoscienceAustralia    | 项目源码 | 文件源码
def fit(self, y):
        x = y[~np.isnan(y)]
        n = len(y)
        self.y = erfinv(np.linspace(0., 1., n + 2)[1:-1])
        self.s = np.sort(x)
项目:smrt    作者:smrt-model    | 项目源码 | 文件源码
def __init__(self, params):

        super(GaussianRandomField, self).__init__(params)  # don't forget this line in our classes!

        # value of the correlation function at the origin
        self.corr_func_at_origin = self.frac_volume * (1.0 - self.frac_volume)

        # inverse slope of the normalized correlation function at the origin
        beta = np.sqrt(2) * erfinv(2 * (1-self.frac_volume) - 1)
        # second derivative of the field acf at the origin
        acf_psi_doubleprime = -1.0 / 2 * ( (1.0/self.corr_length)**2 + 1.0 / 3 * (2 * np.pi / self.repeat_distance)**2 )
        SSA_tilde = 2.0 / np.pi * np.exp( - beta**2 / 2) * np.sqrt( -acf_psi_doubleprime ) / self.frac_volume
        self.inv_slope_at_origin = 4.0 * (1 - self.frac_volume) / SSA_tilde
项目:smrt    作者:smrt-model    | 项目源码 | 文件源码
def autocorrelation_function(self, r):
        """compute the real space autocorrelation function for the Gaussian random field model

        """
        # compute the cut-level parameter beta
        beta = np.sqrt(2) * erfinv(2 * (1-self.frac_volume) - 1)

        # the covariance of the GRF
        acf_psi = (np.exp(-r/self.corr_length) * (1 + r / self.corr_length)
                   * np.sinc(2*r/self.repeat_distance))

        # integral discretization. henning says: the resolution 1e-2 is ad hoc, test required,
        # the integrand has a (integrable) singularity for t=1 and acf_psi = 1, so an adaptive
        # discretization seems preferable -> TODO
        dt = 1e-2
        t = np.arange(0, 1, dt)

        # the gridded integrand, via change of integration variable
        # compared to the wp-2 docu, to enable array-based computation
        t_gridded, acf_psi_gridded = np.meshgrid(t, acf_psi)
        integrand_gridded = (acf_psi_gridded / np.sqrt(1 - (t_gridded * acf_psi_gridded)**2)
                             * np.exp( - beta**2 / (1 + t_gridded * acf_psi_gridded)))

        acf = 1.0 / (2 * np.pi) * np.trapz(integrand_gridded, x=t_gridded)

        return acf

    # ft not known analytically: deligate
    # def ft_autocorrelation_function(self, k):
项目:tensorpac    作者:EtienneCmb    | 项目源码 | 文件源码
def ndpac(pha, amp, p, optimize):
    """Normalized direct Pac (Ozkurt, 2012).

    Parameters
    ----------
    pha : array_like
        Array of phases of shapes (npha, ..., npts)

    amp : array_like
        Array of amplitudes of shapes (namp, ..., npts)

    p : float
        The p-value to use.

    Returns
    -------
    pac : array_like
        PAC of shape (npha, namp, ...)
    """
    npts = amp.shape[-1]
    # Normalize amplitude :
    np.subtract(amp, np.mean(amp, axis=-1, keepdims=True), out=amp)
    np.divide(amp, np.std(amp, axis=-1, keepdims=True), out=amp)
    # Compute pac :
    pac = np.abs(np.einsum('i...j, k...j->ik...', amp, np.exp(1j * pha),
                           optimize=optimize))
    pac *= pac / npts
    # Set to zero non-significant values:
    xlim = erfinv(1 - p)**2
    pac[pac <= 2 * xlim] = 0.
    return pac
项目:CSB    作者:csb-toolbox    | 项目源码 | 文件源码
def truncated_normal(shape=None, mu=0., sigma=1., x_min=None, x_max=None):
    """
    Generates random variates from a lower-and upper-bounded normal distribution

    @param shape: shape of the random sample
    @param mu:    location parameter 
    @param sigma: width of the distribution (sigma >= 0.)
    @param x_min: lower bound of variate
    @param x_max: upper bound of variate    
    @return: random variates of lower-bounded normal distribution
    """
    from scipy.special import erf, erfinv
    from numpy.random import standard_normal
    from numpy import inf, sqrt

    if x_min is None and x_max is None:
        return standard_normal(shape) * sigma + mu
    elif x_min is None:
        x_min = -inf
    elif x_max is None:
        x_max = inf

    x_min = max(-1e300, x_min)
    x_max = min(+1e300, x_max)
    var = sigma ** 2 + 1e-300
    sigma = sqrt(2 * var)

    a = erf((x_min - mu) / sigma)
    b = erf((x_max - mu) / sigma)

    return probability_transform(shape, erfinv, a, b) * sigma + mu
项目:tefla    作者:litan    | 项目源码 | 文件源码
def normal(sample, avg=0.0, std=1.0):
    return avg + std * np.sqrt(2) * erfinv(2 * sample - 1)
项目:tefla    作者:openAGI    | 项目源码 | 文件源码
def normal(sample, avg=0.0, std=1.0):
    return avg + std * np.sqrt(2) * erfinv(2 * sample - 1)
项目:frequencyDependentAntennas    作者:reedessick    | 项目源码 | 文件源码
def lineOfSightGrid( theta, phi, Ntheta, Nphi, sigmaTheta, pole=None ):
    '''
    assumes theta, phi are in Earth fixed coordinates.
    generates a grid in line of sight coordinates around the corresponding theta_los, phi_los
    returns that grid in Earth fixed coords
    return thetaGRID, phiGRID
    '''
    theta_los, phi_los = ThetaPhi2LineOfSight(theta, phi, pole=pole)

    # phi is easy, just wrap it around the azimuth
    phiGRID = np.linspace(0, 2*np.pi, Nphi+1)[:-1]

    # theta is a bit ad hoc, but should be a gaussian centered on the injected location
    if Ntheta%2:
        Ntheta += 1
    thetaGRID = erfinv(np.linspace(0,1,Ntheta/2+1)[:-1])
    thetaGRID = theta_los + sigmaTheta*np.concatenate((-thetaGRID[::-1], thetaGRID[1:]))
    thetaGRID = thetaGRID[(thetaGRID>=0)*(thetaGRID<=np.pi)]

    ### rotate back to Earth-fixed
    thetaGRID, phiGRID = np.meshgrid(thetaGRID, phiGRID)
    thetaGRID, phiGRID = lineOfSight2ThetaPhi(thetaGRID.flatten(), phiGRID.flatten(), pole=pole)

    phiGRID[phiGRID<0] += 2*np.pi ### we want these to be positive

    return thetaGRID, phiGRID
项目:Kaggle_Buddy    作者:NickYi1990    | 项目源码 | 文件源码
def ka_erfinv_rank_transform(x):
    '''
        This is used on numeric variable, after doing this operation, one should do MM and SS on all dataset.
    '''
    mm = MinMaxScaler()
    tmp = erfinv(np.clip(np.squeeze(mm.fit_transform(rankdata(x).reshape(-1,1))), 0, 0.999999999))
    tmp = tmp - np.mean(tmp)
    return tmp
项目:zorro    作者:C-CINA    | 项目源码 | 文件源码
def histClim( imData, cutoff = 0.01, bins_ = 512 ):
    '''Compute display range based on a confidence interval-style, from a histogram
    (i.e. ignore the 'cutoff' proportion lowest/highest value pixels)'''

    if( cutoff <= 0.0 ):
        return imData.min(), imData.max()
    # compute image histogram
    hh, bins_ = imHist(imData, bins_)
    hh = hh.astype( 'float' )

    # number of pixels
    Npx = np.sum(hh)
    hh_csum = np.cumsum( hh )

    # Find indices where hh_csum is < and > Npx*cutoff
    try:
        i_forward = np.argwhere( hh_csum < Npx*(1.0 - cutoff) )[-1][0]
        i_backward = np.argwhere( hh_csum > Npx*cutoff )[0][0]
    except IndexError:
        print( "histClim failed, returning confidence interval instead" )
        from scipy.special import erfinv

        sigma = np.sqrt(2) * erfinv( 1.0 - cutoff )
        return ciClim( imData, sigma )

    clim =  np.array( [bins_[i_backward], bins_[i_forward]] )
    if clim[0] > clim[1]:
        clim = np.array( [clim[1], clim[0]] )
    return clim
项目:DeepScript    作者:mikekestemont    | 项目源码 | 文件源码
def normal(sample, avg=0.0, std=1.0):
    return avg + std * np.sqrt(2) * erfinv(2 * sample - 1)
项目:paysage    作者:drckf    | 项目源码 | 文件源码
def erfinv(x: T.Tensor) -> T.Tensor:
    """
    Elementwise error function of a tensor.

    Args:
        x: A tensor.

    Returns:
        tensor: Elementwise error function
    """
    return special.erfinv(x)