【问题标题】:Compare two 2D numpy arrays and remove rows [duplicate]比较两个 2D numpy 数组并删除行 [重复]
【发布时间】:2020-01-25 11:18:36
【问题描述】:

我有两个 2D numpy 数组

a = [[1,2,3], [3,4,5]] b = [[1,2,3], [3,4,5], [6,7,8]]

我如何执行 b-a,如删除 b 中在 a 中找到的行?

我需要的答案是c = [[6,7,8]]

谢谢!

【问题讨论】:

  • 你真的有 numpy 数组吗?请注意,它们与列表不同。
  • 是的,它们是 ndarrays
  • 它们必须在同一行吗?

标签: python python-3.x numpy numpy-ndarray


【解决方案1】:
for i in range(len(a)):
   for j in range(len(b)):
       if(b[j] == a[i]):
           b.pop(j)

我认为这应该可以解决您的问题。

【讨论】:

    【解决方案2】:

    您可以在此处使用列表推导:

    a = [[1,2,3], [3,4,5]] 
    b = [[1,2,3], [3,4,5], [6,7,8]]
    
    result = [x for x in b if x not in a]
    print(result)
    

    输出:

    [[6, 7, 8]]
    

    【讨论】:

    • 谢谢。但这不适用于 ndarrays。
    猜你喜欢
    • 2013-02-02
    • 2013-10-11
    • 1970-01-01
    • 2013-09-17
    • 2012-01-31
    • 1970-01-01
    • 2017-12-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多