scipy.special.powm1#

scipy.special.powm1(x, y, out=None) = <ufunc 'powm1'>#

计算 x**y - 1

y 接近 0 或 x 接近 1 时,此函数非常有用。

该函数仅针对实数类型实现(与接受复数输入的 numpy.power 不同)。

参数:
xarray_like

基础。必须是实数类型(即整数或浮点数,不是复数)。

yarray_like

指数。必须是实数类型(即整数或浮点数,不是复数)。

返回:
array_like

计算结果

注释

Added in version 1.10.0.

底层代码仅针对单精度和双精度浮点数实现。与 numpy.power 不同,powm1 的整数输入会被转换为浮点数,并且不接受复数输入。

注意以下边缘情况:

  • powm1(x, 0) 对于任何 x 都返回 0,包括 0、infnan

  • powm1(1, y) 对于任何 y 都返回 0,包括 naninf

示例

>>> import numpy as np
>>> from scipy.special import powm1
>>> x = np.array([1.2, 10.0, 0.9999999975])
>>> y = np.array([1e-9, 1e-11, 0.1875])
>>> powm1(x, y)
array([ 1.82321557e-10,  2.30258509e-11, -4.68749998e-10])

可以验证,这些结果中的相对误差小于 2.5e-16。

x**y - 1 的结果相比,其中相对误差都大于 8e-8:

>>> x**y - 1
array([ 1.82321491e-10,  2.30258035e-11, -4.68750039e-10])