🍾 Xarray is now 10 years old! 🎉

xarray.Dataset.argmin

Contents

xarray.Dataset.argmin#

Dataset.argmin(dim=None, **kwargs)[source]#

Indices of the minima of the member variables.

If there are multiple minima, the indices of the first one found will be returned.

Parameters:
  • dim (Hashable, optional) – The dimension over which to find the minimum. By default, finds minimum over all dimensions - for now returning an int for backward compatibility, but this is deprecated, in future will be an error, since DataArray.argmin will return a dict with indices for all dimensions, which does not make sense for a Dataset.

  • keep_attrs (bool, optional) – If True, the attributes (attrs) will be copied from the original object to the new one. If False (default), the new object will be returned without attributes.

  • skipna (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:

result (Dataset)

Examples

>>> dataset = xr.Dataset(
...     {
...         "math_scores": (
...             ["student", "test"],
...             [[90, 85, 79], [78, 80, 85], [95, 92, 98]],
...         ),
...         "english_scores": (
...             ["student", "test"],
...             [[88, 90, 92], [75, 82, 79], [39, 96, 78]],
...         ),
...     },
...     coords={
...         "student": ["Alice", "Bob", "Charlie"],
...         "test": ["Test 1", "Test 2", "Test 3"],
...     },
... )

# Indices of the minimum values along the ‘student’ dimension are calculated

>>> argmin_indices = dataset.argmin(dim="student")
>>> min_score_in_math = dataset["student"].isel(
...     student=argmin_indices["math_scores"]
... )
>>> min_score_in_math
<xarray.DataArray 'student' (test: 3)> Size: 84B
array(['Bob', 'Bob', 'Alice'], dtype='<U7')
Coordinates:
    student  (test) <U7 84B 'Bob' 'Bob' 'Alice'
  * test     (test) <U6 72B 'Test 1' 'Test 2' 'Test 3'
>>> min_score_in_english = dataset["student"].isel(
...     student=argmin_indices["english_scores"]
... )
>>> min_score_in_english
<xarray.DataArray 'student' (test: 3)> Size: 84B
array(['Charlie', 'Bob', 'Charlie'], dtype='<U7')
Coordinates:
    student  (test) <U7 84B 'Charlie' 'Bob' 'Charlie'
  * test     (test) <U6 72B 'Test 1' 'Test 2' 'Test 3'