scipy.special.boxcox1p#

scipy.special.boxcox1p(x, lmbda, out=None) = <ufunc 'boxcox1p'>#

计算 \(1 + x\) 的 Box-Cox 变换。

boxcox1p 计算的 Box-Cox 变换为:

\[\begin{split}y = \begin{cases} ((1+x)^\lambda - 1) / \lambda & \text{如果 } \lambda \neq 0 \\ \log(1+x) & \text{如果 } \lambda = 0 \end{cases}\end{split}\]

如果 \(x < -1\),返回 nan。如果 \(x = -1\)\(\lambda \leq 0\),返回 -inf

参数:
xarray_like

要转换的数据。

lmbdaarray_like

Box-Cox 变换的幂参数 \(\lambda\)

outndarray, optional

用于存放函数值的可选输出数组。

返回:
y标量或 ndarray

转换后的数据。

另请参阅

boxcox

Box-Cox 变换。

inv_boxcox1p

1 + x 的 Box-Cox 变换的逆变换。

附注

在 0.14.0 版本中添加。

数组 API 标准支持

boxcox1p 除了支持 NumPy 外,还对符合 Python 数组 API 标准的后端提供了实验性支持。请考虑通过设置环境变量 SCIPY_ARRAY_API=1 并提供 CuPy、PyTorch、JAX 或 Dask 数组作为数组参数来测试这些功能。目前支持以下后端与设备(或其他功能)的组合。

CPU

GPU

NumPy

不适用

CuPy

不适用

PyTorch

JAX

Dask

不适用

有关更多信息,请参阅 对数组 API 标准的支持

示例

>>> from scipy.special import boxcox1p
>>> boxcox1p(1e-4, [0, 0.5, 1])
array([  9.99950003e-05,   9.99975001e-05,   1.00000000e-04])
>>> boxcox1p([0.01, 0.1], 0.25)
array([ 0.00996272,  0.09645476])