Numpy int数组:查找多个目标int的索引

Nic*_*mer 6 python arrays numpy

我有一个大的numpy数组(dtype=int)和一组数字,我想在该数组中找到,例如,

import numpy as np
values = np.array([1, 2, 3, 1, 2, 4, 5, 6, 3, 2, 1])
searchvals = [3, 1]
# result = [0, 2, 3, 8, 10]
Run Code Online (Sandbox Code Playgroud)

result阵列不必进行排序.

速度是一个问题,因为这两个valuessearchvals可能很大,

for searchval in searchvals:
    np.where(values == searchval)[0]
Run Code Online (Sandbox Code Playgroud)

不削减它.

任何提示?

wim*_*wim 5

这够快吗?

>>> np.where(np.in1d(values, searchvals))
(array([ 0,  2,  3,  8, 10]),)
Run Code Online (Sandbox Code Playgroud)