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
计算结果
注解
1.10.0 版之后添加。
底层代码仅适用于单精度浮点数和双精度浮点数。与
numpy.power
不同,powm1
> 的整数输入将转换为浮点数,并且不接受复数输入。注意以下 edge case
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])