From 019c8c9b2a7c084eb01cf4d8569799a5537d884d Mon Sep 17 00:00:00 2001 From: Miles Cranmer Date: Fri, 24 Jun 2022 08:24:22 -0400 Subject: BUG: Fix in1d for empty integer array as input (#21842) * TST: Tests empty input to in1d of various types * MAINT: Skip table method on empty input array * MAINT: Check array size before call to min * MAINT: Return early for kind="table" and empty ar2 * TST: Test other dtypes of empty arrays --- numpy/lib/arraysetops.py | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'numpy/lib/arraysetops.py') diff --git a/numpy/lib/arraysetops.py b/numpy/lib/arraysetops.py index 9a44d7e44..fa332e7fd 100644 --- a/numpy/lib/arraysetops.py +++ b/numpy/lib/arraysetops.py @@ -636,6 +636,13 @@ def in1d(ar1, ar2, assume_unique=False, invert=False, *, kind=None): f"Invalid kind: '{kind}'. Please use None, 'sort' or 'table'.") if integer_arrays and kind in {None, 'table'}: + + if ar2.size == 0: + if invert: + return np.ones_like(ar1, dtype=bool) + else: + return np.zeros_like(ar1, dtype=bool) + ar2_min = np.min(ar2) ar2_max = np.max(ar2) -- cgit v1.2.1