代码之家  ›  专栏  ›  技术社区  ›  iagerogiannis

在3D-np数组中搜索1D-np数组

  •  1
  • iagerogiannis  · 技术社区  · 3 年前

    在下面的示例中,我尝试在3D np数组中搜索1D np数组。

    import numpy as np
    
    
    a = np.array([[[1, 2], [3, 4]],
                  [[5, 6], [3, 2]],
                  [[2, 1], [7, 8]]])
    
    b = np.array([1, 2])
    
    print(np.all(a == b, axis=1))
    # print(np.where(np.all(a == b, axis=(1,1))))
    

    [[False False]
     [False False]
     [False False]]
    

    这意味着我得到了布尔表的正确维数,但由于某些原因,结果不是预期的结果。

    1 回复  |  直到 3 年前
        1
  •  2
  •   akuiper    3 年前

    你需要 axis=2 ,即第三轴:

    np.all(a == b, axis=2)
    
    [[ True False]
     [False False]
     [False False]]
    

    或者您可以指定 axis=-1 对于最后一个轴:

    np.all(a == b, axis=-1)
    
    [[ True False]
     [False False]
     [False False]]