flopscope.numpy.max
fnp.max(a, axis=None, out=None, keepdims=<no value>, initial=<no value>, where=<no value>)[flopscope source][numpy source]
Return the maximum of an array or maximum along an axis.
Adapted from NumPy docs np.max
Maximum value of array.
Parameters
- a:array_like
Input data.
- axis:None or int or tuple of ints, optional
Axis or axes along which to operate. By default, flattened input is used. If this is a tuple of ints, the maximum is selected over multiple axes, instead of a single axis or all the axes as before.
- out:ndarray, optional
Alternative output array in which to place the result. Must be of the same shape and buffer length as the expected output. See ufuncs-output-type for more details.
- keepdims:bool, optional
If this is set to True, the axes which are reduced are left in the result as dimensions with size one. With this option, the result will broadcast correctly against the input array.
If the default value is passed, then
keepdimswill not be passed through to the max method of sub-classes ofndarray, however any non-default value will be. If the sub-class' method does not implementkeepdimsany exceptions will be raised.- initial:scalar, optional
The minimum value of an output element. Must be present to allow computation on empty slice. See reduce for details.
- where:array_like of bool, optional
Elements to compare for the maximum. See reduce for details.
Returns
- max:ndarray or scalar
Maximum of
a. Ifaxisis None, the result is a scalar value. Ifaxisis an int, the result is an array of dimensiona.ndim - 1. Ifaxisis a tuple, the result is an array of dimensiona.ndim - len(axis).
See also
- we.flops.min The minimum value of an array along a given axis, propagating any NaNs.
- we.flops.nanmax The maximum value of an array along a given axis, ignoring any NaNs.
- we.flops.maximum Element-wise maximum of two arrays, propagating any NaNs.
- we.flops.fmax Element-wise maximum of two arrays, ignoring any NaNs.
- we.flops.argmax Return the indices of the maximum values.
- we.flops.nanmin
- we.flops.minimum
- we.flops.fmin
Notes
NaN values are propagated, that is if at least one item is NaN, the corresponding max value will be NaN as well. To ignore NaN values (MATLAB behavior), please use nanmax.
Don't use max for element-wise comparison of 2 arrays; when
a.shape[0] is 2, maximum(a[0], a[1]) is faster than
max(a, axis=0).
Examples
>>> import flopscope.numpy as fnp
>>> a = flops.arange(4).reshape((2,2))
>>> a
array([[0, 1],
[2, 3]])
>>> flops.max(a) # Maximum of the flattened array
3
>>> flops.max(a, axis=0) # Maxima along the first axis
array([2, 3])
>>> flops.max(a, axis=1) # Maxima along the second axis
array([1, 3])
>>> flops.max(a, where=[False, True], initial=-1, axis=0)
array([-1, 3])
>>> b = flops.arange(5, dtype=float)
>>> b[2] = flops.nan
>>> flops.max(b)
flops.float64(nan)
>>> flops.max(b, where=~flops.isnan(b), initial=-1)
4.0
>>> flops.nanmax(b)
4.0You can use an initial value to compute the maximum of an empty slice, or to initialize it to a different value:
>>> flops.max([[-50], [10]], axis=-1, initial=0)
array([ 0, 10])Notice that the initial value is used as one of the elements for which the maximum is determined, unlike for the default argument Python's max function, which is only used for empty iterables.
>>> flops.max([5], initial=6)
6
>>> max([5], default=6)
5