summaryrefslogtreecommitdiff
path: root/numpy/core/fromnumeric.py
diff options
context:
space:
mode:
Diffstat (limited to 'numpy/core/fromnumeric.py')
-rw-r--r--numpy/core/fromnumeric.py18
1 files changed, 16 insertions, 2 deletions
diff --git a/numpy/core/fromnumeric.py b/numpy/core/fromnumeric.py
index f102f4b58..c7e390c73 100644
--- a/numpy/core/fromnumeric.py
+++ b/numpy/core/fromnumeric.py
@@ -1455,7 +1455,14 @@ def sum(a, axis=None, dtype=None, out=None):
out[...] = res
return out
return res
- return um.add.reduce(a, axis=axis, dtype=dtype, out=out)
+ elif not (type(a) is mu.ndarray):
+ try:
+ sum = a.sum
+ except AttributeError:
+ return um.add.reduce(a, axis=axis, dtype=dtype, out=out)
+ return sum(axis=axis, dtype=dtype, out=out)
+ else:
+ return um.add.reduce(a, axis=axis, dtype=dtype, out=out)
def product (a, axis=None, dtype=None, out=None):
"""
@@ -1998,7 +2005,14 @@ def prod(a, axis=None, dtype=None, out=None):
True
"""
- return um.multiply.reduce(a, axis=axis, dtype=dtype, out=out)
+ if not (type(a) is mu.ndarray):
+ try:
+ prod = a.prod
+ except AttributeError:
+ return um.multiply.reduce(a, axis=axis, dtype=dtype, out=out)
+ return prod(axis=axis, dtype=dtype, out=out)
+ else:
+ return um.multiply.reduce(a, axis=axis, dtype=dtype, out=out)
def cumprod(a, axis=None, dtype=None, out=None):
"""