📅  最后修改于: 2023-12-03 15:19:25.733000             🧑  作者: Mango
numpy.expm1()
函数返回 $e^x - 1$,对于某些 $x$ 的值,它可以避免精度损失。
该函数属于 numpy
包的一部分,可在处理数学计算、科学计算等领域发挥作用。
numpy.expm1(x, /, out=None, *, where=True, casting='same_kind', order='K', dtype=None, subok=True[, signature, extobj])
x
: 必需,表示将要执行操作的数组或值。out
: 可选,输出结果的数组。where
: 可选,定义返回哪个输入数组输出非零值。如果选取第一个数组的元素,则对应数组的元素会被返回,否则就对应第二个数组的元素。dtype
: 可选,指定输出数组的数据类型。subok
: 可选,指定子类是否应继承。返回一个数组或标量,包含 $e^x -1$ 的值。
import numpy as np
# 对于较小的 x 值,expm1() 可以避免精度损失
a = np.expm1(1e-8)
print(a)
# 对于较大的 x 值,使用 exp() 更为稳妥
b = np.expm1(100)
print(b)
# 也可以指定输出数组和数据类型
c = np.zeros(3)
np.expm1([1., 2., 3.], out=c)
print(c)
# 使用 where 参数
x = np.arange(5)
y = np.empty(5)
np.expm1(x, out=y, where=[False, True, True, False, False])
print(y)
输出:
1.0000000050000002e-08
1.9287498479639178e+43
[ 1.71828183 6.3890561 19.08553692]
[ 0. 1.71828183 6.3890561 0. 0. ]
从示例中可以看出,numpy.expm1()
在处理较小的 x 值时,能够避免精度损失,而当 x 值较大时,应使用 numpy.exp()
函数,否则会出现数据溢出的情况。同时,该函数也支持指定输出数组和数据类型、使用 where 参数等操作。