首页 > 解决方案 > 检查数组 A 中的元素是否属于数组 B

问题描述

我想以有效的方式检查大数组 A 中的整数是否属于较小的数组 B。我目前使用 for 循环来执行此操作,这对于大型 A 和 B 来说太慢了。

关于如何以更有效的方式做到这一点的任何建议?

当前代码:

import numpy as np

A=np.arange(10)
B=np.array([0,1,9])
isIn=np.zeros_like(A,dtype=bool)
for i in np.unique(B):
   isIn[A==i]=True
print(isIn)
[ True  True False False False False False False False  True]

标签: pythonarraysnumpy

解决方案


你有np.in1d这个:

np.in1d(A, B)
# array([ True,  True, False, False, False, False, False, False, False, True])

推荐阅读