# xarray.ufuncs.arctan

### xarray.ufuncs.arctan *= <xarray.ufuncs._unary_ufunc object>*

xarray specific variant of `numpy.arctan()`. Handles xarray objects by dispatching to the appropriate function for the underlying array type.

Documentation from numpy:

Trigonometric inverse tangent, element-wise.

The inverse of tan, so that if `y = tan(x)` then `x = arctan(y)`.

* **Parameters:**
  * **x** ([array_like](https://numpy.org/doc/stable/glossary.html#term-array_like))
  * **out** ([`ndarray`](https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html#numpy.ndarray), [`None`](https://docs.python.org/3/builtins/constants.html#None), or [`tuple`](https://docs.python.org/3/builtins/stdtypes.html#tuple) of [`ndarray`](https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html#numpy.ndarray) and [`None`](https://docs.python.org/3/builtins/constants.html#None), *optional*) – A location into which the result is stored. If provided, it must have
    a shape that the inputs broadcast to. If not provided or None,
    a freshly-allocated array is returned. A tuple (possible only as a
    keyword argument) must have length equal to the number of outputs.
  * **where** ([array_like](https://numpy.org/doc/stable/glossary.html#term-array_like), *optional*) – This condition is broadcast over the input. At locations where the
    condition is True, the out array will be set to the ufunc result.
    Elsewhere, the out array will retain its original value.
    Note that if an uninitialized out array is created via the default
    `out=None`, locations within it where the condition is False will
    remain uninitialized.
  * **\*\*kwargs** – For other keyword-only arguments, see the
    [ufunc docs](https://numpy.org/doc/stable/reference/ufuncs.html#ufuncs-kwargs).
* **Returns:**
  **out** ([`ndarray`](https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html#numpy.ndarray) or [scalar](../user-guide/terminology.html.md#term-scalar)) – Out has the same shape as x.  Its real part is in
  `[-pi/2, pi/2]` (`arctan(+/-inf)` returns `+/-pi/2`).
  This is a scalar if x is a scalar.

#### SEE ALSO
[`arctan2`](xarray.ufuncs.arctan2.html.md#xarray.ufuncs.arctan2)
: The “four quadrant” arctan of the angle formed by (x, y) and the positive x-axis.

[`angle`](xarray.ufuncs.angle.html.md#xarray.ufuncs.angle)
: Argument of complex values.

### Notes

arctan is a multi-valued function: for each x there are infinitely
many numbers z such that tan(z) = x.  The convention is to return
the angle z whose real part lies in [-pi/2, pi/2].

For real-valued input data types, arctan always returns real output.
For each value that cannot be expressed as a real number or infinity,
it yields `nan` and sets the invalid floating point error flag.

For complex-valued input, arctan is a complex analytic function that
has [`1j, infj`] and [`-1j, -infj`] as branch cuts, and is continuous
from the left on the former and from the right on the latter.

The inverse tangent is also known as atan or tan^{-1}.

### References

Abramowitz, M. and Stegun, I. A., *Handbook of Mathematical Functions*,
10th printing, New York: Dover, 1964, pp. 79.
[https://personal.math.ubc.ca/~cbm/aands/page_79.htm](https://personal.math.ubc.ca/~cbm/aands/page_79.htm)

### Examples

<div class="try_examples_button_container"><button class="try_examples_button" onclick="window.tryExamplesShowIframe('0342fa7b-5261-4ae2-932c-6ecf80e829c5','99998504-6afd-4227-bc29-a5edeea355b2','c879b75a-1d17-485f-956a-0d1478ed269d','../lite/tree/../notebooks/index.html?path=8e417d06_d093_4910_9087_9f4edbdee521.ipynb','None')">Try it in your browser!</button></div>

We expect the arctan of 0 to be 0, and of 1 to be pi/4:

```pycon
>>> import numpy as np
>>> np.arctan([0, 1])
array([ 0.        ,  0.78539816])
```

```pycon
>>> np.pi/4
0.78539816339744828
```

Plot arctan:

```pycon
>>> import matplotlib.pyplot as plt
>>> x = np.linspace(-10, 10)
>>> plt.plot(x, np.arctan(x))
>>> plt.axis('tight')
>>> plt.show()
```

<div id="c879b75a-1d17-485f-956a-0d1478ed269d" class="try_examples_outer_iframe  hidden"><div class="try_examples_button_container"><button class="try_examples_button" onclick="window.tryExamplesHideIframe('0342fa7b-5261-4ae2-932c-6ecf80e829c5','c879b75a-1d17-485f-956a-0d1478ed269d')">Go Back</button><button class="try_examples_button" onclick="window.openInNewTab('0342fa7b-5261-4ae2-932c-6ecf80e829c5','c879b75a-1d17-485f-956a-0d1478ed269d')">Open In Tab</button></div><div id="99998504-6afd-4227-bc29-a5edeea355b2" class="jupyterlite_sphinx_iframe_container"></div></div><script>document.addEventListener("DOMContentLoaded", function() {window.loadTryExamplesConfig("../try_examples.json");});</script>
