def min(self, axis=None, out=None, fill_value=None):
_mask = ndarray.__getattribute__(self, '<STR_LIT>')<EOL>newmask = _check_mask_axis(_mask, axis)<EOL>if fill_value is None:<EOL><INDENT>fill_value = minimum_fill_value(self)<EOL><DEDENT>if out is None:<EOL><INDENT>result = self.filled(fill_value).min(axis=axis, out=out).view(type(self))<EOL>if result.ndim:<EOL><INDENT>result.__setmask__(newmask)<EOL>if newmask.ndim:<EOL><INDENT>np.copyto(result, result.fill_value, where=newmask)<EOL><DEDENT><DEDENT>elif newmask:<EOL><INDENT>result = masked<EOL><DEDENT>return result<EOL><DEDENT>result = self.filled(fill_value).min(axis=axis, out=out)<EOL>if isinstance(out, MaskedArray):<EOL><INDENT>outmask = getattr(out, '<STR_LIT>', nomask)<EOL>if (outmask is nomask):<EOL><INDENT>outmask = out._mask = make_mask_none(out.shape)<EOL><DEDENT>outmask.flat = newmask<EOL><DEDENT>else:<EOL><INDENT>if out.dtype.kind in '<STR_LIT>':<EOL><INDENT>errmsg = "<STR_LIT>""<STR_LIT>"<EOL>raise MaskError(errmsg)<EOL><DEDENT>np.copyto(out, np.nan, where=newmask)<EOL><DEDENT>return out<EOL>
Return the minimum along a given axis.

Parameters
----------
axis : {None, int}, optional
    Axis along which to operate.  By default, ``axis`` is None and the
    flattened input is used.
out : array_like, optional
    Alternative output array in which to place the result.  Must be of
    the same shape and buffer length as the expected output.
fill_value : {var}, optional
    Value used to fill in the masked values.
    If None, use the output of `minimum_fill_value`.

Returns
-------
amin : array_like
    New array holding the result.
    If ``out`` was specified, ``out`` is returned.

See Also
--------
minimum_fill_value
    Returns the minimum filling value for a given datatype.