numpy.arctan2¶
-
numpy.
arctan2
(x1, x2[, out]) = <ufunc 'arctan2'>¶ x1/x2
的元素平方倒圆切线正确选择象限。选择象限(即分支)使得
arctan2(x1, x2)
是以弧度原点并通过点(1,0),并且光线在原点结束并通过点(x2,x1)。(注意角色颠倒:“y -coordinate”是第一个函数参数,“x -coordinate”是第二个。根据IEEE约定,该函数定义为x2 = +/- 0,并且x1和x2 = +/- 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]
.笔记
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] (1,2)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])