这是一种使用的方法sorting
-
def remove_first_match(a,b):
sidx = b.argsort(kind='mergesort')
unqb, idx = np.unique(b[sidx],return_index=1)
return np.delete(b,sidx[idx[np.in1d(unqb,a)]])
样本运行 -
In [177]: a = np.array([2,1,3])
...: b = np.array([4,1,2,5,2,3,2,3])
...:
In [178]: remove_first_match(a,b)
Out[178]: array([4, 5, 2, 2, 3])
In [179]: a = np.array([2,2,1,3])
...: b = np.array([4,5])
...:
In [180]: remove_first_match(a,b)
Out[180]: array([4, 5])