idxmax
- UnitsAwareDataArray.idxmax(dim: Hashable = None, *, skipna: bool | None = None, fill_value: Any = <NA>, keep_attrs: bool | None = None) Self
- Return the coordinate label of the maximum value along a dimension. - Returns a new DataArray named after the dimension with the values of the coordinate labels along that dimension corresponding to maximum values along that dimension. - In comparison to - argmax(), this returns the coordinate label while- argmax()returns the index.- Parameters:
- dim (Hashable, optional) – Dimension over which to apply idxmax. This is optional for 1D arrays, but required for arrays with 2 or more dimensions. 
- skipna (bool or None, default: None) – If True, skip missing values (as marked by NaN). By default, only skips missing values for - float,- complex, and- objectdtypes; other dtypes either do not have a sentinel missing value (- int) or- skipna=Truehas not been implemented (- datetime64or- timedelta64).
- fill_value (Any, default: NaN) – Value to be filled in case all of the values along a dimension are null. By default this is NaN. The fill value and result are automatically converted to a compatible dtype if possible. Ignored if - skipnais False.
- keep_attrs (bool or None, optional) – If True, the attributes ( - attrs) will be copied from the original object to the new one. If False, the new object will be returned without attributes.
 
- Returns:
- reduced – New DataArray object with idxmax applied to its data and the indicated dimension removed. 
- Return type:
- DataArray 
 - See also - Dataset.idxmax,- DataArray.idxmin,- DataArray.max,- DataArray.argmax- Examples - >>> array = xr.DataArray( ... [0, 2, 1, 0, -2], dims="x", coords={"x": ["a", "b", "c", "d", "e"]} ... ) >>> array.max() <xarray.DataArray ()> Size: 8B array(2) >>> array.argmax(...) {'x': <xarray.DataArray ()> Size: 8B array(1)} >>> array.idxmax() <xarray.DataArray 'x' ()> Size: 4B array('b', dtype='<U1') - >>> array = xr.DataArray( ... [ ... [2.0, 1.0, 2.0, 0.0, -2.0], ... [-4.0, np.nan, 2.0, np.nan, -2.0], ... [np.nan, np.nan, 1.0, np.nan, np.nan], ... ], ... dims=["y", "x"], ... coords={"y": [-1, 0, 1], "x": np.arange(5.0) ** 2}, ... ) >>> array.max(dim="x") <xarray.DataArray (y: 3)> Size: 24B array([2., 2., 1.]) Coordinates: * y (y) int64 24B -1 0 1 >>> array.argmax(dim="x") <xarray.DataArray (y: 3)> Size: 24B array([0, 2, 2]) Coordinates: * y (y) int64 24B -1 0 1 >>> array.idxmax(dim="x") <xarray.DataArray 'x' (y: 3)> Size: 24B array([0., 4., 4.]) Coordinates: * y (y) int64 24B -1 0 1