From e1dda05f25f1a014bbe0e19fd04df51b2a350e50 Mon Sep 17 00:00:00 2001 From: John Omotani Date: Fri, 26 Jun 2020 12:05:48 +0100 Subject: [PATCH] Swap order of reduce_dims checks in Dataset.reduce() Prefer to pass reduce_dims=None when possible, including for variables with only one dimension. Avoids an error if an 'axis' keyword was passed. --- xarray/core/dataset.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/xarray/core/dataset.py b/xarray/core/dataset.py index 26a2ec58ec7..8f60d04cc97 100644 --- a/xarray/core/dataset.py +++ b/xarray/core/dataset.py @@ -4295,15 +4295,15 @@ def reduce( or np.issubdtype(var.dtype, np.number) or (var.dtype == np.bool_) ): - if len(reduce_dims) == 1: - # unpack dimensions for the benefit of functions - # like np.argmin which can't handle tuple arguments - (reduce_dims,) = reduce_dims - elif len(reduce_dims) == var.ndim: + if len(reduce_dims) == var.ndim: # prefer to aggregate over axis=None rather than # axis=(0, 1) if they will be equivalent, because # the former is often more efficient reduce_dims = None # type: ignore + elif len(reduce_dims) == 1: + # unpack dimensions for the benefit of functions + # like np.argmin which can't handle tuple arguments + (reduce_dims,) = reduce_dims variables[name] = var.reduce( func, dim=reduce_dims,