numpy.arctan2

原文:https://docs.scipy.org/doc/numpy/reference/generated/numpy.arctan2.html

译者:飞龙 UsyiyiCN

校对:(虚位以待)

numpy.arctan2(x1, x2[, out]) = <ufunc 'arctan2'>

x1/x2的元素平方倒圆切线正确选择象限。

选择象限(即分支)使得arctan2(x1, x2)是以弧度原点并通过点(1,0),并且光线在原点结束并通过点(x2x1)。(注意角色颠倒:“y -coordinate”是第一个函数参数,“x -coordinate”是第二个。根据IEEE约定,该函数定义为x2 = +/- 0,并且x1x2 = +/- inf (具体值见注)。

这个函数没有为复值参数定义;对于复杂值的所谓参数,使用angle

参数:

x1:array_like,real-value

y - 坐标。

x2:array_like,real-valued

x - 坐标。x2必须可以广播以符合x1的形状,反之亦然。

返回:

angle:ndarray

Array of angles in radians, in the range [-pi, pi].

也可以看看

arctantanangle

笔记

arctan2与基础C库的atan2函数相同。在C标准中定义了以下特殊值:[R6]

x1 x2 arctan2(x1,x2)
+/- 0 +0 +/- 0
+/- 0 -0 +/- pi
> 0 +/- inf +0 / + pi
+/- inf -0 / -pi
+/- inf + inf +/-(pi / 4)
+/- inf -inf +/-(3 * pi / 4)

注意+0和-0是不同的浮点数,如+ inf和-inf。

参考文献

[R6]12)ISO / IEC标准9899:1999,“Programming language C”

例子

考虑不同象限中的四个点:

>>> x = np.array([-1, +1, +1, -1])
>>> y = np.array([-1, -1, +1, +1])
>>> np.arctan2(y, x) * 180 / np.pi
array([-135.,  -45.,   45.,  135.])

注意参数的顺序。arctan2也在当x2 = 0时定义,并且在几个其他特殊点处,获得范围[-pi, pi]

>>> np.arctan2([1., -1.], [0., 0.])
array([ 1.57079633, -1.57079633])
>>> np.arctan2([0., 0., np.inf], [+0., -0., np.inf])
array([ 0.        ,  3.14159265,  0.78539816])