检查数组 - 是否包含在另一个数组中?

时间:2015-04-04 22:17:00

标签: 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','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的解决方案都是首选。

2 个答案:

答案 0 :(得分:11)

您可以使用in1d我相信 -

np.in1d(A,B)

答案 1 :(得分:2)

要在不使用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]