summaryrefslogtreecommitdiff
path: root/numpy/lib/function_base.py
diff options
context:
space:
mode:
authorBas van Beek <b.f.van.beek@vu.nl>2020-08-11 15:53:55 +0200
committerBas van Beek <b.f.van.beek@vu.nl>2020-08-11 15:53:55 +0200
commit7127cdfb8553030ba317455c9f31fe4d7ed74e81 (patch)
tree77bfded8b13c9e14c5e32e5bdeaa979ad23f68b0 /numpy/lib/function_base.py
parent7aced6e57253f6e10960ab33f05229a6f882b094 (diff)
downloadnumpy-7127cdfb8553030ba317455c9f31fe4d7ed74e81.tar.gz
ENH: Use elementwise comparisons with 0 rather than boolean casting
Diffstat (limited to 'numpy/lib/function_base.py')
-rw-r--r--numpy/lib/function_base.py8
1 files changed, 6 insertions, 2 deletions
diff --git a/numpy/lib/function_base.py b/numpy/lib/function_base.py
index cd8862c94..96e1c6de9 100644
--- a/numpy/lib/function_base.py
+++ b/numpy/lib/function_base.py
@@ -1631,7 +1631,7 @@ def trim_zeros(filt, trim='fb'):
# Numpy 1.20.0, 2020-07-31
warning = DeprecationWarning(
"in the future trim_zeros will require a 1-D array as input "
- "that is compatible with ndarray.astype(bool)"
+ "that supports elementwise comparisons with zero"
)
warning.__cause__ = ex
warnings.warn(warning, stacklevel=3)
@@ -1643,7 +1643,11 @@ def trim_zeros(filt, trim='fb'):
def _trim_zeros_new(filt, trim='fb'):
"""Newer optimized implementation of ``trim_zeros()``."""
- arr = np.asanyarray(filt).astype(bool, copy=False)
+ arr_any = np.asanyarray(filt)
+ with warnings.catch_warnings():
+ # not all dtypes support elementwise comparisons with `0` (e.g. str)
+ warnings.simplefilter('error', FutureWarning)
+ arr = arr_any != 0 if arr_any.dtype != bool else arr_any
if arr.ndim != 1:
raise ValueError('trim_zeros requires an array of exactly one dimension')