【问题标题】:Check for array - is value contained in another array?检查数组 - 值是否包含在另一个数组中?
【发布时间】:2015-04-04 22:16:59
【问题描述】:

我想为数组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 的解决方案都是首选。

【问题讨论】:

    标签: python arrays numpy


    【解决方案1】:

    我相信你可以使用in1d -

    np.in1d(A,B)
    

    【讨论】:

      【解决方案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]
      

      【讨论】:

      • 对于这个小例子,这个列表理解比np.in1d快得多。
      猜你喜欢
      • 1970-01-01
      • 2021-06-06
      • 2015-10-28
      • 1970-01-01
      • 1970-01-01
      • 2017-05-30
      • 1970-01-01
      • 2020-11-18
      相关资源
      最近更新 更多