a = np.array([1, 2, 3])
b = np.array([4, 2, 3, 1, 0])
c = np.setdiff1d(b, a)
print("c", c)
Run Code Online (Sandbox Code Playgroud)
结果是,c [0, 4]但我想要的答案是c [4 0]。
我怎样才能做到这一点?
获取不匹配的掩码np.in1d并简单地将布尔索引放入b以保留其中元素的顺序 -
b[~np.in1d(b,a)]
Run Code Online (Sandbox Code Playgroud)
示例分步运行 -
In [14]: a
Out[14]: array([1, 2, 3])
In [15]: b
Out[15]: array([4, 2, 3, 1, 0])
In [16]: ~np.in1d(b,a)
Out[16]: array([ True, False, False, False, True], dtype=bool)
In [17]: b[~np.in1d(b,a)]
Out[17]: array([4, 0])
Run Code Online (Sandbox Code Playgroud)