summaryrefslogtreecommitdiff
path: root/numpy/ma
diff options
context:
space:
mode:
Diffstat (limited to 'numpy/ma')
-rw-r--r--numpy/ma/core.py151
-rw-r--r--numpy/ma/extras.py26
-rw-r--r--numpy/ma/tests/test_core.py2
-rw-r--r--numpy/ma/tests/test_deprecations.py5
4 files changed, 96 insertions, 88 deletions
diff --git a/numpy/ma/core.py b/numpy/ma/core.py
index 812c48ced..0ee630a97 100644
--- a/numpy/ma/core.py
+++ b/numpy/ma/core.py
@@ -5757,6 +5757,36 @@ class MaskedArray(ndarray):
ma.minimum_fill_value
Returns the minimum filling value for a given datatype.
+ Examples
+ --------
+ >>> import numpy.ma as ma
+ >>> x = [[1., -2., 3.], [0.2, -0.7, 0.1]]
+ >>> mask = [[1, 1, 0], [0, 0, 1]]
+ >>> masked_x = ma.masked_array(x, mask)
+ >>> masked_x
+ masked_array(
+ data=[[--, --, 3.0],
+ [0.2, -0.7, --]],
+ mask=[[ True, True, False],
+ [False, False, True]],
+ fill_value=1e+20)
+ >>> ma.min(masked_x)
+ -0.7
+ >>> ma.min(masked_x, axis=-1)
+ masked_array(data=[3.0, -0.7],
+ mask=[False, False],
+ fill_value=1e+20)
+ >>> ma.min(masked_x, axis=0, keepdims=True)
+ masked_array(data=[[0.2, -0.7, 3.0]],
+ mask=[[False, False, False]],
+ fill_value=1e+20)
+ >>> mask = [[1, 1, 1,], [1, 1, 1]]
+ >>> masked_x = ma.masked_array(x, mask)
+ >>> ma.min(masked_x, axis=0)
+ masked_array(data=[--, --, --],
+ mask=[ True, True, True],
+ fill_value=1e+20,
+ dtype=float64)
"""
kwargs = {} if keepdims is np._NoValue else {'keepdims': keepdims}
@@ -5792,74 +5822,6 @@ class MaskedArray(ndarray):
np.copyto(out, np.nan, where=newmask)
return out
- # unique to masked arrays
- def mini(self, axis=None):
- """
- Return the array minimum along the specified axis.
-
- .. deprecated:: 1.13.0
- This function is identical to both:
-
- * ``self.min(keepdims=True, axis=axis).squeeze(axis=axis)``
- * ``np.ma.minimum.reduce(self, axis=axis)``
-
- Typically though, ``self.min(axis=axis)`` is sufficient.
-
- Parameters
- ----------
- axis : int, optional
- The axis along which to find the minima. Default is None, in which case
- the minimum value in the whole array is returned.
-
- Returns
- -------
- min : scalar or MaskedArray
- If `axis` is None, the result is a scalar. Otherwise, if `axis` is
- given and the array is at least 2-D, the result is a masked array with
- dimension one smaller than the array on which `mini` is called.
-
- Examples
- --------
- >>> x = np.ma.array(np.arange(6), mask=[0 ,1, 0, 0, 0 ,1]).reshape(3, 2)
- >>> x
- masked_array(
- data=[[0, --],
- [2, 3],
- [4, --]],
- mask=[[False, True],
- [False, False],
- [False, True]],
- fill_value=999999)
- >>> x.mini()
- masked_array(data=0,
- mask=False,
- fill_value=999999)
- >>> x.mini(axis=0)
- masked_array(data=[0, 3],
- mask=[False, False],
- fill_value=999999)
- >>> x.mini(axis=1)
- masked_array(data=[0, 2, 4],
- mask=[False, False, False],
- fill_value=999999)
-
- There is a small difference between `mini` and `min`:
-
- >>> x[:,1].mini(axis=0)
- masked_array(data=3,
- mask=False,
- fill_value=999999)
- >>> x[:,1].min(axis=0)
- 3
- """
-
- # 2016-04-13, 1.13.0, gh-8764
- warnings.warn(
- "`mini` is deprecated; use the `min` method or "
- "`np.ma.minimum.reduce instead.",
- DeprecationWarning, stacklevel=2)
- return minimum.reduce(self, axis)
-
def max(self, axis=None, out=None, fill_value=None, keepdims=np._NoValue):
"""
Return the maximum along a given axis.
@@ -5894,6 +5856,43 @@ class MaskedArray(ndarray):
ma.maximum_fill_value
Returns the maximum filling value for a given datatype.
+ Examples
+ --------
+ >>> import numpy.ma as ma
+ >>> x = [[-1., 2.5], [4., -2.], [3., 0.]]
+ >>> mask = [[0, 0], [1, 0], [1, 0]]
+ >>> masked_x = ma.masked_array(x, mask)
+ >>> masked_x
+ masked_array(
+ data=[[-1.0, 2.5],
+ [--, -2.0],
+ [--, 0.0]],
+ mask=[[False, False],
+ [ True, False],
+ [ True, False]],
+ fill_value=1e+20)
+ >>> ma.max(masked_x)
+ 2.5
+ >>> ma.max(masked_x, axis=0)
+ masked_array(data=[-1.0, 2.5],
+ mask=[False, False],
+ fill_value=1e+20)
+ >>> ma.max(masked_x, axis=1, keepdims=True)
+ masked_array(
+ data=[[2.5],
+ [-2.0],
+ [0.0]],
+ mask=[[False],
+ [False],
+ [False]],
+ fill_value=1e+20)
+ >>> mask = [[1, 1], [1, 1], [1, 1]]
+ >>> masked_x = ma.masked_array(x, mask)
+ >>> ma.max(masked_x, axis=1)
+ masked_array(data=[--, --, --],
+ mask=[ True, True, True],
+ fill_value=1e+20,
+ dtype=float64)
"""
kwargs = {} if keepdims is np._NoValue else {'keepdims': keepdims}
@@ -6707,15 +6706,9 @@ class _extrema_operation(_MaskedUFunc):
self.compare = compare
self.fill_value_func = fill_value
- def __call__(self, a, b=None):
+ def __call__(self, a, b):
"Executes the call behavior."
- if b is None:
- # 2016-04-13, 1.13.0
- warnings.warn(
- f"Single-argument form of np.ma.{self.__name__} is deprecated. Use "
- f"np.ma.{self.__name__}.reduce instead.",
- DeprecationWarning, stacklevel=2)
- return self.reduce(a)
+
return where(self.compare(a, b), a, b)
def reduce(self, target, axis=np._NoValue):
@@ -8078,12 +8071,6 @@ def asanyarray(a, dtype=None):
# Pickling #
##############################################################################
-def _pickle_warn(method):
- # NumPy 1.15.0, 2017-12-10
- warnings.warn(
- f"np.ma.{method} is deprecated, use pickle.{method} instead",
- DeprecationWarning, stacklevel=3)
-
def fromfile(file, dtype=float, count=-1, sep=''):
raise NotImplementedError(
diff --git a/numpy/ma/extras.py b/numpy/ma/extras.py
index d2986012b..4e7f8e85e 100644
--- a/numpy/ma/extras.py
+++ b/numpy/ma/extras.py
@@ -1104,6 +1104,32 @@ def unique(ar1, return_index=False, return_inverse=False):
--------
numpy.unique : Equivalent function for ndarrays.
+ Examples
+ --------
+ >>> import numpy.ma as ma
+ >>> a = [1, 2, 1000, 2, 3]
+ >>> mask = [0, 0, 1, 0, 0]
+ >>> masked_a = ma.masked_array(a, mask)
+ >>> masked_a
+ masked_array(data=[1, 2, --, 2, 3],
+ mask=[False, False, True, False, False],
+ fill_value=999999)
+ >>> ma.unique(masked_a)
+ masked_array(data=[1, 2, 3, --],
+ mask=[False, False, False, True],
+ fill_value=999999)
+ >>> ma.unique(masked_a, return_index=True)
+ (masked_array(data=[1, 2, 3, --],
+ mask=[False, False, False, True],
+ fill_value=999999), array([0, 1, 4, 2]))
+ >>> ma.unique(masked_a, return_inverse=True)
+ (masked_array(data=[1, 2, 3, --],
+ mask=[False, False, False, True],
+ fill_value=999999), array([0, 1, 3, 1, 2]))
+ >>> ma.unique(masked_a, return_index=True, return_inverse=True)
+ (masked_array(data=[1, 2, 3, --],
+ mask=[False, False, False, True],
+ fill_value=999999), array([0, 1, 4, 2]), array([0, 1, 3, 1, 2]))
"""
output = np.unique(ar1,
return_index=return_index,
diff --git a/numpy/ma/tests/test_core.py b/numpy/ma/tests/test_core.py
index 8304a2d24..b1c080a56 100644
--- a/numpy/ma/tests/test_core.py
+++ b/numpy/ma/tests/test_core.py
@@ -5399,7 +5399,7 @@ def test_ufunc_with_out_varied():
def test_astype_mask_ordering():
- descr = [('v', int, 3), ('x', [('y', float)])]
+ descr = np.dtype([('v', int, 3), ('x', [('y', float)])])
x = array([
[([1, 2, 3], (1.0,)), ([1, 2, 3], (2.0,))],
[([1, 2, 3], (3.0,)), ([1, 2, 3], (4.0,))]], dtype=descr)
diff --git a/numpy/ma/tests/test_deprecations.py b/numpy/ma/tests/test_deprecations.py
index 3e0e09fdd..40c8418f5 100644
--- a/numpy/ma/tests/test_deprecations.py
+++ b/numpy/ma/tests/test_deprecations.py
@@ -39,11 +39,6 @@ class TestArgsort:
class TestMinimumMaximum:
- def test_minimum(self):
- assert_warns(DeprecationWarning, np.ma.minimum, np.ma.array([1, 2]))
-
- def test_maximum(self):
- assert_warns(DeprecationWarning, np.ma.maximum, np.ma.array([1, 2]))
def test_axis_default(self):
# NumPy 1.13, 2017-05-06