Python 检查数组-值是否包含在另一个数组中?
我想为数组Python 检查数组-值是否包含在另一个数组中?,python,arrays,numpy,Python,Arrays,Numpy,我想为数组a中的每个值返回一个布尔值,指示它是否在数组B中。我想这应该是一个标准程序,但我找不到任何关于如何做的信息。我的尝试如下: A = ['User0','User1','User2','User3','User4','User0','User1','User2','User3' 'User4','User0','User1','User2','User3','User4','User0','User1','User2' 'User3','User4','User0',
a
中的每个值返回一个布尔值,指示它是否在数组B
中。我想这应该是一个标准程序,但我找不到任何关于如何做的信息。我的尝试如下:
A = ['User0','User1','User2','User3','User4','User0','User1','User2','User3'
'User4','User0','User1','User2','User3','User4','User0','User1','User2'
'User3','User4','User0','User1','User2','User3','User4','User0','User1'
'User2','User3','User4','User0','User1']
B = ['User3', 'User2', 'User4']
contained = (A in B)
但是,我得到了一个错误:
ValueError: shape mismatch: objects cannot be broadcast to a single shape
我正在使用numpy,因此任何使用numpy或标准Python的解决方案都是首选。要在不使用
numpy
的情况下对其进行测试,请尝试:
contained = [a in B for a in A]
结果:
[False, False, True, True, True, False, False, True, False, False,
False, True, True, True, False, False, False, True, False, False,
True, True, True, False, False, True, True, False, False]
你可以用我相信-
np.in1d(A,B)
对于这个小例子,这个列表理解要比
np.inad
快得多。