在numpy数组中查找多个元素的索引

Gab*_*iel 3 python arrays numpy

给定一个整数数组,我需要找到存储在不同数组中的许多元素的索引。这是:

import numpy as np
a1 = np.array([ 4, 5, 6, 1, 2, 3, 7, 86, 9, 15])
a2 = np.array([ 2, 3, 5, 6, 9])
Run Code Online (Sandbox Code Playgroud)

a1我的初始元素数组在哪里,a2是包含我需要在a1.

在这种情况下,结果应该是:

a3 = ([4, 5, 1, 2, 8])
Run Code Online (Sandbox Code Playgroud)

这似乎是一个相当简单的操作,但我一直无法弄清楚如何去做。

Max*_*axU 5

你可以试试这个:

In [378]: (a1[:, None] == a2).argmax(axis=0)
Out[378]: array([4, 5, 1, 2, 8], dtype=int64)
Run Code Online (Sandbox Code Playgroud)

  • 此解决方案有效,但它比 /sf/ask/2357498041/ 中给出的 `np.nonzero(a2[:, None] == a1)[1]` 慢很多一个数组在另一个数组中 (2认同)