本文简要介绍 python 语言中 scipy.special.tklmbda 的用法。
用法:
scipy.special.tklmbda(x, lmbda, out=None) = <ufunc 'tklmbda'>#Tukey lambda 分布的累积分布函数。
- x, lmbda: array_like
参数
- out: ndarray,可选
函数结果的可选输出数组
- cdf: 标量或 ndarray
Tukey lambda CDF 的值
参数 ::
返回 ::
例子:
>>> import numpy as np >>> import matplotlib.pyplot as plt >>> from scipy.special import tklmbda, expit计算
lmbda= -1.5 时多个x值处的 Tukey lambda 分布的累积分布函数 (CDF)。>>> x = np.linspace(-2, 2, 9) >>> x array([-2. , -1.5, -1. , -0.5, 0. , 0.5, 1. , 1.5, 2. ]) >>> tklmbda(x, -1.5) array([0.34688734, 0.3786554 , 0.41528805, 0.45629737, 0.5 , 0.54370263, 0.58471195, 0.6213446 , 0.65311266])当
lmbda为0时,该函数为logistic sigmoid函数,在scipy.special中实现为expit。>>> tklmbda(x, 0) array([0.11920292, 0.18242552, 0.26894142, 0.37754067, 0.5 , 0.62245933, 0.73105858, 0.81757448, 0.88079708]) >>> expit(x) array([0.11920292, 0.18242552, 0.26894142, 0.37754067, 0.5 , 0.62245933, 0.73105858, 0.81757448, 0.88079708])当
lmbda为1时,Tukey lambda分布在区间[-1, 1]上是均匀的,因此CDF线性增加。>>> t = np.linspace(-1, 1, 9) >>> tklmbda(t, 1) array([0. , 0.125, 0.25 , 0.375, 0.5 , 0.625, 0.75 , 0.875, 1. ])接下来,我们为
lmbda的多个值生成图。第一张图显示了
lmbda<= 0 的图表。>>> styles = ['-', '-.', '--', ':'] >>> fig, ax = plt.subplots() >>> x = np.linspace(-12, 12, 500) >>> for k, lmbda in enumerate([-1.0, -0.5, 0.0]): ... y = tklmbda(x, lmbda) ... ax.plot(x, y, styles[k], label=f'$\lambda$ = {lmbda:-4.1f}')>>> ax.set_title('tklmbda(x, $\lambda$)') >>> ax.set_label('x') >>> ax.legend(framealpha=1, shadow=True) >>> ax.grid(True)第二张图显示了
lmbda> 0 的图表。图表中的点显示了分布的支持范围。>>> fig, ax = plt.subplots() >>> x = np.linspace(-4.2, 4.2, 500) >>> lmbdas = [0.25, 0.5, 1.0, 1.5] >>> for k, lmbda in enumerate(lmbdas): ... y = tklmbda(x, lmbda) ... ax.plot(x, y, styles[k], label=f'$\lambda$ = {lmbda}')>>> ax.set_prop_cycle(None) >>> for lmbda in lmbdas: ... ax.plot([-1/lmbda, 1/lmbda], [0, 1], '.', ms=8)>>> ax.set_title('tklmbda(x, $\lambda$)') >>> ax.set_xlabel('x') >>> ax.legend(framealpha=1, shadow=True) >>> ax.grid(True)>>> plt.tight_layout() >>> plt.show()
Tukey lambda 分布的 CDF 也实现为
scipy.stats.tukeylambda的cdf方法。在下文中,tukeylambda.cdf(x, -0.5)和tklmbda(x, -0.5)计算相同的值:>>> from scipy.stats import tukeylambda >>> x = np.linspace(-2, 2, 9)>>> tukeylambda.cdf(x, -0.5) array([0.21995157, 0.27093858, 0.33541677, 0.41328161, 0.5 , 0.58671839, 0.66458323, 0.72906142, 0.78004843])>>> tklmbda(x, -0.5) array([0.21995157, 0.27093858, 0.33541677, 0.41328161, 0.5 , 0.58671839, 0.66458323, 0.72906142, 0.78004843])tukeylambda中的实现还提供位置和尺度参数,以及其他方法,例如pdf()(概率密度函数)和ppf()(CDF 的逆函数),因此对于使用 Tukey lambda 分布,tukeylambda更普遍有用。tklmbda的主要优点是它比tukeylambda.cdf快得多。
相关用法
- Python SciPy special.tandg用法及代码示例
- Python SciPy special.exp1用法及代码示例
- Python SciPy special.expn用法及代码示例
- Python SciPy special.ncfdtri用法及代码示例
- Python SciPy special.gamma用法及代码示例
- Python SciPy special.y1用法及代码示例
- Python SciPy special.y0用法及代码示例
- Python SciPy special.ellip_harm_2用法及代码示例
- Python SciPy special.i1e用法及代码示例
- Python SciPy special.smirnovi用法及代码示例
- Python SciPy special.ker用法及代码示例
- Python SciPy special.ynp_zeros用法及代码示例
- Python SciPy special.k0e用法及代码示例
- Python SciPy special.j1用法及代码示例
- Python SciPy special.logsumexp用法及代码示例
- Python SciPy special.expit用法及代码示例
- Python SciPy special.polygamma用法及代码示例
- Python SciPy special.nbdtrik用法及代码示例
- Python SciPy special.nbdtrin用法及代码示例
- Python SciPy special.seterr用法及代码示例
- Python SciPy special.ncfdtr用法及代码示例
- Python SciPy special.pdtr用法及代码示例
- Python SciPy special.expm1用法及代码示例
- Python SciPy special.shichi用法及代码示例
- Python SciPy special.smirnov用法及代码示例
注:本文由纯净天空筛选整理自scipy.org大神的英文原创作品 scipy.special.tklmbda。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。
