原文:https://docs.scipy.org/doc/numpy/reference/generated/numpy.arctan2.html
校对:(虚位以待)
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
x2:array_like,real-valued
|
---|---|
返回: | angle:ndarray
|
笔记
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])