您可以使用
np.in1d带有
np.nonzero-
np.nonzero(np.in1d(A,B))[0]
np.searchsorted如果您关心维护订单,也可以使用-
np.searchsorted(A,B)
对于一般情况,当
A&
B是未排序的数组时,您可以在中引入
sorter选项
np.searchsorted,就像这样-
sort_idx = A.argsort()out = sort_idx[np.searchsorted(A,B,sorter = sort_idx)]
broadcasting为了解决一般情况,我还会添加我最喜欢的内容-
np.nonzero(B[:,None] == A)[1]
样品运行-
In [125]: AOut[125]: array([ 7, 5, 1, 6, 10, 9, 8])In [126]: BOut[126]: array([ 1, 10, 7])In [127]: sort_idx = A.argsort()In [128]: sort_idx[np.searchsorted(A,B,sorter = sort_idx)]Out[128]: array([2, 4, 0])In [129]: np.nonzero(B[:,None] == A)[1]Out[129]: array([2, 4, 0])
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)