python-根据某个值是否在其他列表中而得到的numpy掩码

我已经搜索了很多东西,但是找不到解决方法(可能我在搜索错误的字词.)

我想根据每个值是否在其他列表中来创建一个掩码(例如[True False False True True True]).

a=np.array([11,12,13,14,15,16,17])
mask= a in [14,16,8] #(this doesnt work at all!)
#I would like to see [False False False True False True False]

到目前为止,我能想到的最好的是列表理解

mask = [True if x in other_list else False for x in my_numpy_array]

请让我知道您是否知道一些秘诀可以用numpy和fast(计算)来完成此操作,因为实际上这个列表很大…

最佳答案
使用numpy.in1d()

In [6]: np.in1d(a, [14, 16, 18])
Out[6]: array([False, False, False,  True, False,  True, False], dtype=bool)

转载注明原文:python-根据某个值是否在其他列表中而得到的numpy掩码 - 代码日志