在另一个数组中查找一个数组的匹配索引

在另一个数组中查找一个数组的匹配索引,第1张

在另一个数组中查找一个数组的匹配索引

您可以使用

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])


欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/zaji/5666766.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存