diff options
author | Sebastian Berg <sebastian@sipsolutions.net> | 2022-05-27 09:04:59 -0700 |
---|---|---|
committer | Sebastian Berg <sebastian@sipsolutions.net> | 2022-06-15 11:42:02 -0700 |
commit | 09d407a3cd24b712f8a40748262e00188e8b8efa (patch) | |
tree | 9ee40e764163e75bb52a1ca37086e4b536ff5b44 /numpy | |
parent | d9cefc8e096e90419f8d1f9a0afff73c33d4c630 (diff) | |
download | numpy-09d407a3cd24b712f8a40748262e00188e8b8efa.tar.gz |
MAINT: Fortify methods (in-place division) against promotion changes
Diffstat (limited to 'numpy')
-rw-r--r-- | numpy/core/_methods.py | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/numpy/core/_methods.py b/numpy/core/_methods.py index eda00147d..e8b82bf1c 100644 --- a/numpy/core/_methods.py +++ b/numpy/core/_methods.py @@ -180,7 +180,8 @@ def _mean(a, axis=None, dtype=None, out=None, keepdims=False, *, where=True): ret = umr_sum(arr, axis, dtype, out, keepdims, where=where) if isinstance(ret, mu.ndarray): ret = um.true_divide( - ret, rcount, out=ret, casting='unsafe', subok=False) + ret, rcount, out=ret, casting='unsafe', subok=False, + dtype=ret.dtype) if is_float16_result and out is None: ret = arr.dtype.type(ret) elif hasattr(ret, 'dtype'): @@ -221,7 +222,7 @@ def _var(a, axis=None, dtype=None, out=None, ddof=0, keepdims=False, *, div = rcount.reshape(arrmean.shape) if isinstance(arrmean, mu.ndarray): arrmean = um.true_divide(arrmean, div, out=arrmean, casting='unsafe', - subok=False) + subok=False, dtype=arrmean.dtype) elif hasattr(arrmean, "dtype"): arrmean = arrmean.dtype.type(arrmean / rcount) else: @@ -252,7 +253,8 @@ def _var(a, axis=None, dtype=None, out=None, ddof=0, keepdims=False, *, # divide by degrees of freedom if isinstance(ret, mu.ndarray): ret = um.true_divide( - ret, rcount, out=ret, casting='unsafe', subok=False) + ret, rcount, out=ret, casting='unsafe', subok=False, + dtype=ret.dtype) elif hasattr(ret, 'dtype'): ret = ret.dtype.type(ret / rcount) else: |