diff options
author | Charles Harris <charlesr.harris@gmail.com> | 2017-01-24 11:49:34 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-01-24 11:49:34 -0700 |
commit | f737b354e6ab2aef8b4c05bca0011de46a4b53b0 (patch) | |
tree | 392010620acadfc696e59f069d3c82b12d4975d8 | |
parent | 81d176e7ead43f819cbe8654c67805fa07c609bd (diff) | |
parent | 9ae84854d9c48a751e57c5cd0e9636678a6d2359 (diff) | |
download | numpy-f737b354e6ab2aef8b4c05bca0011de46a4b53b0.tar.gz |
Merge pull request #8524 from juliantaylor/f2-mean-fix
BUG: fix mean for float 16 non-array inputs
-rw-r--r-- | numpy/core/_methods.py | 4 | ||||
-rw-r--r-- | numpy/core/tests/test_multiarray.py | 6 |
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 8bbfbc09c..10b243b35 100644 --- a/numpy/core/tests/test_multiarray.py +++ b/numpy/core/tests/test_multiarray.py @@ -4407,6 +4407,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: |