NumPy arctanh() 函数
NumPy arctanh() 函数计算输入数组中每个元素的反双曲正切(面积双曲正切)。反双曲正切也称为 atanh 或 tanh-1,数学定义为 −
arctanh(x) = 0.5 * ln((1 + x) / (1 - x))
该函数是双曲正切函数 (tanh()) 的逆函数,返回以弧度为单位的值。 arctanh() 是一个多值函数,对于每个实数 x,都有无穷多个复数 z 满足 tanh(z) = x。惯例是返回虚部位于 [-pi/2, pi/2] 之间的 z。
对于实值输入数据类型,arctanh 始终返回实数输出。对于每个不能表示为实数或无穷大的值,它将返回 nan 并设置无效浮点错误标记。
对于复数输入,arctanh() 是一个复解析函数,其范围介于 [-1, -infinite] 和 [1, infinite] 之间,并且前者从上方连续,后者从下方连续。
语法
以下是 NumPy arctanh() 函数的语法 -
numpy.arctanh(x, out=None, where=True, casting='same_kind', order='K', dtype=None, subok=True)
参数
以下是NumPy arctanh() 函数 −
- x:输入数组,可以是 NumPy 数组、列表或标量值。为了获得真实结果,元素必须满足 -1 < x < 1。
- out(可选):用于放置结果的备用输出数组。其形状必须与预期输出相同。
- where(可选):布尔值数组。如果为 True,则计算结果;否则,保留相应的输出元素不变。
- dtype(可选):指定结果的数据类型。
- casting(可选):确保进行等效类型转换。例如,允许从 `float32` 转换为 `float64`,但不允许从 `float64` 转换为 `int32`。
- subok(可选):确定在数据类型发生变化时是否对输出数组进行子类化,或者返回基类数组。
- order(可选):指定数组的内存布局 -
- 'C':C 风格的行优先顺序。
- 'F':Fortran 风格的列优先顺序。
- 'A':如果输入是 Fortran 连续的,则为 'F',否则为 'C'。
- 'K':这是默认值。使顺序尽可能接近输入。
返回值
此函数返回一个 NumPy 数组,其中包含输入值的反双曲正切值。如果输入值超出范围,则结果为 nan。
示例
以下是使用 NumPy arctanh() 函数计算数组中每个元素的反双曲正切值的基本示例 -
import numpy as np # 输入数组 x = np.array([-0.5, 0, 0.5]) # 应用 arctanh result = np.arctanh(x) print("Arctanh 结果:", result)
输出
以下是上述代码的输出 -
Arctanh 结果: [-0.54930614 0. 0.54930614]
示例:标量输入作为参数
arctanh() 函数也接受标量输入。在以下示例中,我们将 0.5 作为参数传递给 arctanh() 函数 -
import numpy as np # 标量输入 scalar = 0.5 # 应用反正切函数 result = np.arctanh(scalar) print("标量输入的反正切结果:", result)
输出
以下是上述代码的输出 -
标量输入的反正切结果:0.5493061443340548
示例:多维数组
arctanh() 函数用于对多维数组进行运算。在以下示例中,我们创建了一个 2X2 NumPy 数组,其中每个元素计算其反双曲正切值 -
import numpy as np # 二维数组 x = np.array([[-0.5, 0], [0.5, 0.8]]) result = np.arctanh(x) print("二维数组的反正切结果: ", result)
输出
以下是上述代码的输出 -
二维数组的反正切结果: [[-0.54930614 0. ] [ 0.54930614 1.09861229]]
示例:绘制 arctanh() 函数
在下面的示例中,我们绘制了 arctanh() 函数的行为。为此,我们需要导入 numpy 和 matplotlib.pyplot 模块 -
import numpy as np import matplotlib.pyplot as plt x = np.linspace(-0.99, 0.99, 100) # 输入范围 (-1 < x < 1) y = np.arctanh(x) # 应用 arctanh plt.plot(x, y) plt.title("反双曲正切函数") plt.xlabel("Input") plt.ylabel("arctanh(x)") plt.grid() plt.show()
numpy_trigonometric_functions.html