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、inf
和nan
。powm1(1, y)
对于任何y
都返回 0,包括nan
和inf
。
示例
>>> 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])