查找第二个数组中数组所有元素的索引

时间:2020-07-01 19:20:16

标签: python arrays numpy

给定两个数组,我想找到另一个数组的元素的索引,并得到一个具有所述索引的新数组,以及一个-1表示第二个数组中不存在的元素。

例如,给定两个数组:

x = np.array([ 0, 17, 94, 3, 25])
y = np.array([ 1, 14, 0, 3, 27, 0, 17, 94, 52])

我想要:

z = np.array([ -1, -1, 0, 3, -1, 0, 1, 2, -1])

我看过np.intersect1d,但我认为这不是我想要的。

编辑:我正在处理大型数组(每个数组约有10或1500万个元素),因此性能是一个问题。

1 个答案:

答案 0 :(得分:0)

np.array([np.where(x==i)[0][0] if i in x else -1 for i in y])

编辑:

这可能无法很好地扩展:)