summaryrefslogtreecommitdiff
path: root/numpy/ma
diff options
context:
space:
mode:
authorEric Wieser <wieser.eric@gmail.com>2017-04-13 14:14:13 +0100
committerEric Wieser <wieser.eric@gmail.com>2017-05-06 01:29:33 +0100
commitb0124491e6b5e2edc96c2af92f4ec8727319f252 (patch)
treecf216ed5c451585939e03b675739c7c7f3dcd1c8 /numpy/ma
parent588448c99922868cbdb52eaf01e8702a03455d77 (diff)
downloadnumpy-b0124491e6b5e2edc96c2af92f4ec8727319f252.tar.gz
DEP: Deprecate single-argument np.ma.m(in|ax)imum
This shorthand is just inconsistent with `np.maximum`, and just makes the distinction between `np.ma.max` and `np.ma.maximum` even more confusing. Also adds names to these objects, since 1) they're there in core, and 2) they make the warning message more helpful.
Diffstat (limited to 'numpy/ma')
-rw-r--r--numpy/ma/core.py14
-rw-r--r--numpy/ma/tests/test_core.py10
-rw-r--r--numpy/ma/tests/test_deprecations.py8
-rw-r--r--numpy/ma/tests/test_old_ma.py8
4 files changed, 27 insertions, 13 deletions
diff --git a/numpy/ma/core.py b/numpy/ma/core.py
index 8861a3464..c3f80ea27 100644
--- a/numpy/ma/core.py
+++ b/numpy/ma/core.py
@@ -5673,10 +5673,7 @@ class MaskedArray(ndarray):
"`mini` is deprecated; use the `min` method or "
"`np.ma.minimum.reduce instead.",
DeprecationWarning, stacklevel=2)
- if axis is None:
- return minimum(self)
- else:
- return minimum.reduce(self, axis)
+ return minimum.reduce(self, axis)
def max(self, axis=None, out=None, fill_value=None, keepdims=np._NoValue):
"""
@@ -6371,9 +6368,18 @@ class _extrema_operation(object):
"""
+ @property
+ def __name__(self):
+ return self.ufunc.__name__
+
def __call__(self, a, b=None):
"Executes the call behavior."
if b is None:
+ # 2016-04-13, 1.13.0
+ warnings.warn(
+ "Single-argument form of np.ma.{0} is deprecated. Use "
+ "np.ma.{0}.reduce instead.".format(self.__name__),
+ DeprecationWarning, stacklevel=2)
return self.reduce(a)
return where(self.compare(a, b), a, b)
diff --git a/numpy/ma/tests/test_core.py b/numpy/ma/tests/test_core.py
index f807fc8ae..f20c9ba52 100644
--- a/numpy/ma/tests/test_core.py
+++ b/numpy/ma/tests/test_core.py
@@ -1049,8 +1049,8 @@ class TestMaskedArrayArithmetic(TestCase):
xr = np.ravel(x)
xmr = ravel(xm)
# following are true because of careful selection of data
- assert_equal(max(xr), maximum(xmr))
- assert_equal(min(xr), minimum(xmr))
+ assert_equal(max(xr), maximum.reduce(xmr))
+ assert_equal(min(xr), minimum.reduce(xmr))
assert_equal(minimum([1, 2, 3], [4, 0, 9]), [1, 0, 3])
assert_equal(maximum([1, 2, 3], [4, 0, 9]), [4, 2, 9])
@@ -1060,12 +1060,12 @@ class TestMaskedArrayArithmetic(TestCase):
y[0] = masked
assert_equal(minimum(x, y), where(less(x, y), x, y))
assert_equal(maximum(x, y), where(greater(x, y), x, y))
- assert_(minimum(x) == 0)
- assert_(maximum(x) == 4)
+ assert_(minimum.reduce(x) == 0)
+ assert_(maximum.reduce(x) == 4)
x = arange(4).reshape(2, 2)
x[-1, -1] = masked
- assert_equal(maximum(x), 2)
+ assert_equal(maximum.reduce(x), 2)
def test_minimummaximum_func(self):
a = np.ones((2, 2))
diff --git a/numpy/ma/tests/test_deprecations.py b/numpy/ma/tests/test_deprecations.py
index d66980031..6b3c30e04 100644
--- a/numpy/ma/tests/test_deprecations.py
+++ b/numpy/ma/tests/test_deprecations.py
@@ -37,5 +37,13 @@ class TestArgsort(TestCase):
return self._test_base(np.ma.MaskedArray.argsort, np.ma.MaskedArray)
+class TestMinimumMaximum(TestCase):
+ 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]))
+
+
if __name__ == "__main__":
run_module_suite()
diff --git a/numpy/ma/tests/test_old_ma.py b/numpy/ma/tests/test_old_ma.py
index 2ea53683d..51fa6ac36 100644
--- a/numpy/ma/tests/test_old_ma.py
+++ b/numpy/ma/tests/test_old_ma.py
@@ -182,8 +182,8 @@ class TestMa(TestCase):
xmr = ravel(xm)
# true because of careful selection of data
- self.assertTrue(eq(max(xr), maximum(xmr)))
- self.assertTrue(eq(min(xr), minimum(xmr)))
+ self.assertTrue(eq(max(xr), maximum.reduce(xmr)))
+ self.assertTrue(eq(min(xr), minimum.reduce(xmr)))
def test_testAddSumProd(self):
# Test add, sum, product.
@@ -444,8 +444,8 @@ class TestMa(TestCase):
y[0] = masked
assert_(eq(minimum(x, y), where(less(x, y), x, y)))
assert_(eq(maximum(x, y), where(greater(x, y), x, y)))
- assert_(minimum(x) == 0)
- assert_(maximum(x) == 4)
+ assert_(minimum.reduce(x) == 0)
+ assert_(maximum.reduce(x) == 4)
def test_testTakeTransposeInnerOuter(self):
# Test of take, transpose, inner, outer products