NumPy arctan2() 函数
NumPy arctan2() 函数用于逐个元素计算两个数组 (y, x) 的反正切。
它返回 x 轴正向与平面上点 (x, y) 之间的夹角(以弧度为单位),计算公式为 arctan(y / x),但会适当处理两个参数的符号,以确定结果的正确象限。
此函数特别适用于计算从原点到点 (x, y) 的夹角。
- 定义域:该函数接受两个分别表示 y 和 x 值的数组或标量作为输入。两个输入都可以是标量、数组或两者的组合。定义域为所有实数。
- 范围:输出值在 [-, ] 范围内,角度可为正数或负数,具体取决于象限。
语法
以下是 NumPy arctan2() 函数的语法 -
numpy.arctan2(y, x, /, out=None, where=True, casting='same_kind', order='K', dtype=None, subok=True[, signature, extobj])
参数
此函数接受以下参数 -
- y: y 坐标或数组y 值。此参数表示从原点到点 (x, y) 的垂直距离。
- x: x 坐标或 x 值数组。此参数表示从原点到点 (x, y) 的水平距离。
- out(可选): 存储结果的位置。如果提供,则必须具有输入广播到的形状。如果未提供或为 None,则返回一个新分配的数组。
- where(可选): 此条件通过输入进行广播。在条件为 True 的位置,将计算结果。否则,结果将保留其原始值。
- casting(可选): 控制可能发生的数据类型转换。默认为"same_kind"。
- order(可选): 控制结果的内存布局顺序。 'C' 表示 C 阶,'F' 表示 Fortran 阶,'A' 表示如果输入均为 F 则为 'F',否则为 'C','K' 表示尽可能匹配输入的布局。
- dtype(可选): 返回数组的类型以及处理元素的累加器的类型。除非指定 dtype,否则默认使用 y 和 x 的 dtype。
- subok(可选): 如果为 True,则将传递子类,否则返回的数组将被强制为基类数组。
返回值
此函数返回一个数组,其中每个元素都是输入数组中对应元素对 (y, x) 的反正切值(以弧度为单位)。根据 x 和 y 值的符号计算角度,以确定正确的象限。
示例:arctan2() 函数的基本用法
在以下示例中,我们使用 arctan2() 函数计算两个一维数组中 (y, x) 值的反正切值 -
import numpy as np # 为 y 和 x 创建两个一维数组 y = np.array([1, 1, -1, -1]) x = np.array([1, -1, 1, -1]) # 对每对 (y, x) 执行 arctan2 运算 result = np.arctan2(y, x) print(result)
得到的输出为−
[ 0.78539816 2.35619449 -0.78539816 -2.35619449]
示例:不同形状数组的反正切
在此示例中,我们计算不同形状数组的反正切。 NumPy 会在执行操作之前广播数组,使其具有兼容的形状 -
import numpy as np # 为 y 和 x 创建一维数组 y = np.array([1, 2, 3]) x = np.array([4, 5, 6]) # 对每对 (y, x) 执行 arctan2 运算 result = np.arctan2(y, x) print(result)
这将产生以下结果 -
[0.24497866 0.38050638 0.46364761]
示例:标量反正切
本例中,我们计算一对标量值 (y, x) 的反正切 −
import numpy as np # y 和 x 的标量值 y = 1 x = 1 # 对标量值应用 arctan2 result = np.arctan2(y, x) print(result)
得到的输出为 −
0.7853981633974483
示例:负值的反正切
本例中,我们计算 y 和 x 的负值对的反正切。该函数根据 y 和 x 的符号返回与正确象限对应的角度 -
import numpy as np # y 和 x 的负值 y = np.array([-1, -1, 1, 1]) x = np.array([-1, 1, -1, 1]) # 对每对 (y, x) 执行 arctan2 运算 result = np.arctan2(y, x) print(result)
这将产生以下结果 -
[-2.35619449 -0.78539816 2.35619449 0.78539816]
numpy_trigonometric_functions.html