summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCharles Harris <charlesr.harris@gmail.com>2017-01-24 13:36:40 -0700
committerGitHub <noreply@github.com>2017-01-24 13:36:40 -0700
commit33425bc4473f8cdda026c28f5b9b9754bf22b06a (patch)
tree3364d14c2e86bb895b4be4f0f1577d222be84529
parent3fa7ee986435d5bae03062501641e0f613f92ee7 (diff)
parent9ae84854d9c48a751e57c5cd0e9636678a6d2359 (diff)
downloadnumpy-33425bc4473f8cdda026c28f5b9b9754bf22b06a.tar.gz
Merge pull request #8526 from juliantaylor/f2-mean-fix
BUG: fix mean for float 16 non-array inputs for 1.12
-rw-r--r--numpy/core/_methods.py4
-rw-r--r--numpy/core/tests/test_multiarray.py6
2 files changed, 8 insertions, 2 deletions
diff --git a/numpy/core/_methods.py b/numpy/core/_methods.py
index abfd0a3cc..c05316d18 100644
--- a/numpy/core/_methods.py
+++ b/numpy/core/_methods.py
@@ -72,10 +72,10 @@ def _mean(a, axis=None, dtype=None, out=None, keepdims=False):
ret = um.true_divide(
ret, rcount, out=ret, casting='unsafe', subok=False)
if is_float16_result and out is None:
- ret = a.dtype.type(ret)
+ ret = arr.dtype.type(ret)
elif hasattr(ret, 'dtype'):
if is_float16_result:
- ret = a.dtype.type(ret / rcount)
+ ret = arr.dtype.type(ret / rcount)
else:
ret = ret.dtype.type(ret / rcount)
else:
diff --git a/numpy/core/tests/test_multiarray.py b/numpy/core/tests/test_multiarray.py
index 55d5461f5..c1ae5b569 100644
--- a/numpy/core/tests/test_multiarray.py
+++ b/numpy/core/tests/test_multiarray.py
@@ -4389,6 +4389,12 @@ class TestStats(TestCase):
self.omat = np.array([Decimal(repr(r)) for r in self.rmat.flat])
self.omat = self.omat.reshape(4, 5)
+ def test_python_type(self):
+ for x in (np.float16(1.), 1, 1., 1+0j):
+ assert_equal(np.mean([x]), 1.)
+ assert_equal(np.std([x]), 0.)
+ assert_equal(np.var([x]), 0.)
+
def test_keepdims(self):
mat = np.eye(3)
for f in self.funcs: