summaryrefslogtreecommitdiff
path: root/numpy/ma
diff options
context:
space:
mode:
authorEric Wieser <wieser.eric@gmail.com>2017-12-28 07:40:57 +0000
committerEric Wieser <wieser.eric@gmail.com>2017-12-28 07:57:21 +0000
commite772a1a9bb9626490316e6c9ae8d57cd25cff33c (patch)
tree4d91ea15b1cf54602887547bd0b82da188b34ed7 /numpy/ma
parent7bb2d5a8f0219aa5acb5fda05929f1a0745a1883 (diff)
downloadnumpy-e772a1a9bb9626490316e6c9ae8d57cd25cff33c.tar.gz
ENH: Allow ptp to take an axis tuple and keepdims
Diffstat (limited to 'numpy/ma')
-rw-r--r--numpy/ma/core.py26
1 files changed, 14 insertions, 12 deletions
diff --git a/numpy/ma/core.py b/numpy/ma/core.py
index fe092f552..0f4cff14b 100644
--- a/numpy/ma/core.py
+++ b/numpy/ma/core.py
@@ -5721,7 +5721,7 @@ class MaskedArray(ndarray):
np.copyto(out, np.nan, where=newmask)
return out
- def ptp(self, axis=None, out=None, fill_value=None):
+ def ptp(self, axis=None, out=None, fill_value=None, keepdims=False):
"""
Return (maximum - minimum) along the given dimension
(i.e. peak-to-peak value).
@@ -5746,11 +5746,15 @@ class MaskedArray(ndarray):
"""
if out is None:
- result = self.max(axis=axis, fill_value=fill_value)
- result -= self.min(axis=axis, fill_value=fill_value)
+ result = self.max(axis=axis, fill_value=fill_value,
+ keepdims=keepdims)
+ result -= self.min(axis=axis, fill_value=fill_value,
+ keepdims=keepdims)
return result
- out.flat = self.max(axis=axis, out=out, fill_value=fill_value)
- min_value = self.min(axis=axis, fill_value=fill_value)
+ out.flat = self.max(axis=axis, out=out, fill_value=fill_value,
+ keepdims=keepdims)
+ min_value = self.min(axis=axis, fill_value=fill_value,
+ keepdims=keepdims)
np.subtract(out, min_value, out=out, casting='unsafe')
return out
@@ -6489,17 +6493,15 @@ def max(obj, axis=None, out=None, fill_value=None, keepdims=np._NoValue):
max.__doc__ = MaskedArray.max.__doc__
-def ptp(obj, axis=None, out=None, fill_value=None):
- """
- a.ptp(axis=None) = a.max(axis) - a.min(axis)
-
- """
+def ptp(obj, axis=None, out=None, fill_value=None, keepdims=np._NoValue):
+ kwargs = {} if keepdims is np._NoValue else {'keepdims': keepdims}
try:
- return obj.ptp(axis, out=out, fill_value=fill_value)
+ return obj.ptp(axis, out=out, fill_value=fill_value, **kwargs)
except (AttributeError, TypeError):
# If obj doesn't have a ptp method or if the method doesn't accept
# a fill_value argument
- return asanyarray(obj).ptp(axis=axis, fill_value=fill_value, out=out)
+ return asanyarray(obj).ptp(axis=axis, fill_value=fill_value,
+ out=out, **kwargs)
ptp.__doc__ = MaskedArray.ptp.__doc__