diff options
author | Jaime <jaime.frio@gmail.com> | 2015-05-07 06:40:26 -0700 |
---|---|---|
committer | Jaime <jaime.frio@gmail.com> | 2015-05-07 06:40:26 -0700 |
commit | 21932fbfc217b4a8bc547fa267ea5597d7dcb59b (patch) | |
tree | 2dcd7fc81806b6864c34d57930348dc9da6121a1 /numpy/ma | |
parent | 6bb8c0d46739d6d9bb23cb48670519d7eb620d4d (diff) | |
parent | c05019eda16477f4be99f47755362c07e1acb5b8 (diff) | |
download | numpy-21932fbfc217b4a8bc547fa267ea5597d7dcb59b.tar.gz |
Merge pull request #5847 from christianbrodbeck/fix/setdiff1d
BUG: setdiff1d return type
Fixes 5846
Diffstat (limited to 'numpy/ma')
-rw-r--r-- | numpy/ma/extras.py | 10 | ||||
-rw-r--r-- | numpy/ma/tests/test_extras.py | 2 |
2 files changed, 6 insertions, 6 deletions
diff --git a/numpy/ma/extras.py b/numpy/ma/extras.py index 51064e831..64a9844cf 100644 --- a/numpy/ma/extras.py +++ b/numpy/ma/extras.py @@ -1278,14 +1278,12 @@ def setdiff1d(ar1, ar2, assume_unique=False): fill_value = 999999) """ - if not assume_unique: + if assume_unique: + ar1 = ma.asarray(ar1).ravel() + else: ar1 = unique(ar1) ar2 = unique(ar2) - aux = in1d(ar1, ar2, assume_unique=True) - if aux.size == 0: - return aux - else: - return ma.asarray(ar1)[aux == 0] + return ar1[in1d(ar1, ar2, assume_unique=True, invert=True)] #####-------------------------------------------------------------------------- diff --git a/numpy/ma/tests/test_extras.py b/numpy/ma/tests/test_extras.py index b6749ae9e..3c7b95c9e 100644 --- a/numpy/ma/tests/test_extras.py +++ b/numpy/ma/tests/test_extras.py @@ -1109,6 +1109,8 @@ class TestArraySetOps(TestCase): a = arange(10) b = arange(8) assert_equal(setdiff1d(a, b), array([8, 9])) + a = array([], np.uint32, mask=[]) + assert_equal(setdiff1d(a, []).dtype, np.uint32) def test_setdiff1d_char_array(self): # Test setdiff1d_charray |