max

max(a, axis=None, *, validate=True)

Return the maximum with NaN propagation.

Parameters

a : array_like

Input data. Supported numeric inputs are normalized to a contiguous kernel array when validate=True. Computed reducers promote integer and bool inputs to float64; exact selection reducers keep integer and bool dtypes where the selected value can be returned exactly. Complex and object arrays are not supported.

axis : None, 0, -1, or int = None

Axis to reduce. None reduces the whole array. 0 reduces strided reducing-axis slices into the remaining shape. -1 and ndim - 1 reduce contiguous slices. Other axes raise NotImplementedError.

validate : bool = True

If True, check dtype, dimensionality, contiguity, and axis validity before entering the Rust kernel. If False, the caller must provide a contiguous supported kernel dtype (float32, float64, bool, or a NumPy integer dtype). validate=False skips dtype promotion: integer and bool arrays are reduced directly, while complex and object arrays remain unsupported.

Returns

out : scalar or ndarray

Reduction result. Float inputs return float results. Integer and bool inputs return an exact selected value for non-empty reducing-axis slices: axis=None returns a Python scalar and axis reductions preserve the input dtype.

Notes

Plain reducers include every value, so NaN and inf propagate with IEEE / NumPy-like semantics. This is the fastest path for known-clean finite data.

For integer and bool arrays there is no NaN to skip, so the nan* forms return the same result as their plain counterparts. min, nanmin, max, nanmax, and lmedian preserve the integer or bool dtype for non-empty reducing-axis slices.