numpy.arctan2

numpy.arctan2(x1, x2[, out])

Elementwise arc tangent of x1/x2 choosing the quadrant correctly.

The quadrant (ie. branch) is chosen so that arctan2(x1, x2) is the signed angle in radians between the line segments (0,0) - (1,0) and (0,0) - (x2,x1). This function is defined also for x2 = 0.

arctan2 is not defined for complex-valued arguments.

Parameters:

x1 : array_like, real-valued

y-coordinates.

x2 : array_like, real-valued

x-coordinates. x2 must be broadcastable to match the shape of x1, or vice versa.

Returns:

angle : ndarray

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

See also

arctan, tan

Notes

arctan2 is identical to the atan2 function of the underlying C library. The following special values are defined in the C standard [2]:

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

Note that +0 and -0 are distinct floating point numbers.

References

[R12]Wikipedia, “atan2”, http://en.wikipedia.org/wiki/Atan2
[R13]ISO/IEC standard 9899:1999, “Programming language C”, 1999.

Examples

Consider four points in different quadrants:

>>> 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.])

Note the order of the parameters. arctan2 is defined also when x2 = 0 and at several other special points, obtaining values in the range [-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])

Previous topic

numpy.hypot

Next topic

numpy.degrees

This Page