# xarray.Dataset.quantile

#### Dataset.quantile(q, dim=None, , method='linear', numeric_only=False, keep_attrs=None, skipna=None, interpolation=None)[[source]](https://github.com/pydata/xarray/blob/main/xarray/core/dataset.py#L8378-L8555)

Compute the qth quantile of the data along the specified dimension.

Returns the qth quantiles(s) of the array elements for each variable
in the Dataset.

* **Parameters:**
  * **q** ([`float`](https://docs.python.org/3/builtins/functions.html#float) or [array-like](https://numpy.org/doc/stable/glossary.html#term-array_like) of [`float`](https://docs.python.org/3/builtins/functions.html#float)) – Quantile to compute, which must be between 0 and 1 inclusive.
  * **dim** ([`str`](https://docs.python.org/3/builtins/stdtypes.html#str) or `Iterable` of `Hashable`, *optional*) – Dimension(s) over which to apply quantile.
  * **method** ([`str`](https://docs.python.org/3/builtins/stdtypes.html#str), *default*: `"linear"`) – This optional parameter specifies the interpolation method to use when the
    desired quantile lies between two data points. The options sorted by their R
    type as summarized in the H&F paper <sup>[1](#id3)</sup> are:
    > 1. “inverted_cdf”
    > 2. “averaged_inverted_cdf”
    > 3. “closest_observation”
    > 4. “interpolated_inverted_cdf”
    > 5. “hazen”
    > 6. “weibull”
    > 7. “linear”  (default)
    > 8. “median_unbiased”
    > 9. “normal_unbiased”

    The first three methods are discontiuous.  The following discontinuous
    variations of the default “linear” (7.) option are also available:
    > * “lower”
    > * “higher”
    > * “midpoint”
    > * “nearest”

    See [`numpy.quantile()`](https://numpy.org/doc/stable/reference/generated/numpy.quantile.html#numpy.quantile) or <sup>[1](#id3)</sup> for details. The “method” argument
    was previously called “interpolation”, renamed in accordance with numpy
    version 1.22.0.
  * **keep_attrs** ([`bool`](https://docs.python.org/3/builtins/functions.html#bool), *optional*) – If True, the dataset’s attributes (attrs) will be copied from
    the original object to the new one.  If False (default), the new
    object will be returned without attributes.
  * **numeric_only** ([`bool`](https://docs.python.org/3/builtins/functions.html#bool), *optional*) – If True, only apply `func` to variables with a numeric dtype.
  * **skipna** ([`bool`](https://docs.python.org/3/builtins/functions.html#bool), *optional*) – If True, skip missing values (as marked by NaN). By default, only
    skips missing values for float dtypes; other dtypes either do not
    have a sentinel missing value (int) or skipna=True has not been
    implemented (object, datetime64 or timedelta64).
* **Returns:**
  **quantiles** ([`Dataset`](xarray.Dataset.html.md#xarray.Dataset)) – If q is a single quantile, then the result is a scalar for each
  variable in data_vars. If multiple percentiles are given, first
  axis of the result corresponds to the quantile and a quantile
  dimension is added to the return Dataset. The other dimensions are
  the dimensions that remain after the reduction of the array.

#### SEE ALSO
[`numpy.nanquantile`](https://numpy.org/doc/stable/reference/generated/numpy.nanquantile.html#numpy.nanquantile), [`numpy.quantile`](https://numpy.org/doc/stable/reference/generated/numpy.quantile.html#numpy.quantile), [`pandas.Series.quantile`](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.quantile.html#pandas.Series.quantile), [`DataArray.quantile`](xarray.DataArray.quantile.html.md#xarray.DataArray.quantile)

### Examples

<div class="try_examples_button_container"><button class="try_examples_button" onclick="window.tryExamplesShowIframe('01d70280-06e5-4085-a094-18d00c054050','05a5cc81-8c3d-4000-9d2c-66d6a21ed6ef','0abcfc8d-9274-42e8-aa8a-fdf17290ddbb','../lite/tree/../notebooks/index.html?path=0d3cbba4_a35b_44ea_acd0_683799f4e642.ipynb','None')">Try it in your browser!</button></div>
```pycon
>>> ds = xr.Dataset(
...     {"a": (("x", "y"), [[0.7, 4.2, 9.4, 1.5], [6.5, 7.3, 2.6, 1.9]])},
...     coords={"x": [7, 9], "y": [1, 1.5, 2, 2.5]},
... )
>>> ds.quantile(0)  # or ds.quantile(0, dim=...)
<xarray.Dataset> Size: 16B
Dimensions:   ()
Coordinates:
    quantile  float64 8B 0.0
Data variables:
    a         float64 8B 0.7
>>> ds.quantile(0, dim="x")
<xarray.Dataset> Size: 72B
Dimensions:   (y: 4)
Coordinates:
  * y         (y) float64 32B 1.0 1.5 2.0 2.5
    quantile  float64 8B 0.0
Data variables:
    a         (y) float64 32B 0.7 4.2 2.6 1.5
>>> ds.quantile([0, 0.5, 1])
<xarray.Dataset> Size: 48B
Dimensions:   (quantile: 3)
Coordinates:
  * quantile  (quantile) float64 24B 0.0 0.5 1.0
Data variables:
    a         (quantile) float64 24B 0.7 3.4 9.4
>>> ds.quantile([0, 0.5, 1], dim="x")
<xarray.Dataset> Size: 152B
Dimensions:   (quantile: 3, y: 4)
Coordinates:
  * quantile  (quantile) float64 24B 0.0 0.5 1.0
  * y         (y) float64 32B 1.0 1.5 2.0 2.5
Data variables:
    a         (quantile, y) float64 96B 0.7 4.2 2.6 1.5 3.6 ... 6.5 7.3 9.4 1.9
```

<div id="0abcfc8d-9274-42e8-aa8a-fdf17290ddbb" class="try_examples_outer_iframe  hidden"><div class="try_examples_button_container"><button class="try_examples_button" onclick="window.tryExamplesHideIframe('01d70280-06e5-4085-a094-18d00c054050','0abcfc8d-9274-42e8-aa8a-fdf17290ddbb')">Go Back</button><button class="try_examples_button" onclick="window.openInNewTab('01d70280-06e5-4085-a094-18d00c054050','0abcfc8d-9274-42e8-aa8a-fdf17290ddbb')">Open In Tab</button></div><div id="05a5cc81-8c3d-4000-9d2c-66d6a21ed6ef" class="jupyterlite_sphinx_iframe_container"></div></div><script>document.addEventListener("DOMContentLoaded", function() {window.loadTryExamplesConfig("../try_examples.json");});</script>

### References

* <a id='id3'>**[1]**</a> R. J. Hyndman and Y. Fan, “Sample quantiles in statistical packages,” The American Statistician, 50(4), pp. 361-365, 1996
