diff options
Diffstat (limited to 'numpy/ma')
| -rw-r--r-- | numpy/ma/core.py | 151 | ||||
| -rw-r--r-- | numpy/ma/extras.py | 26 | ||||
| -rw-r--r-- | numpy/ma/tests/test_core.py | 2 | ||||
| -rw-r--r-- | numpy/ma/tests/test_deprecations.py | 5 |
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 |
