多维布尔索引到多维数组

时间:2017-06-15 07:57:55

标签: python numpy multidimensional-array indexing boolean

我试图将多维布尔索引用于多维数组。这是我想要做的简单版本。

import numpy as np
pf=np.array([[[-67.  ,-20.35, 1],
              [-46.35, 33.25, 2],
              [  1   ,  2   , 1],
              [  4   ,  4   , 4]],
             [[-64.  ,-70.35, 8],
              [-46.35, 33.25, 7],
              [  3   ,  7   , 8],
              [  9   ,  3   , 2]]])
booly=np.array([[False, True, False, False],
                [False, False, False, True]])

我想使用我的布尔数组从我的初始(2,4,3)数组中选择真值,以获得没有循环的最终(2,3)数组:

truth=np.array([[-46.35, 33.25, 2],
                [  9   ,  3   , 2]])

我尝试过但失败了。谢谢你们。

1 个答案:

答案 0 :(得分:2)

numpy支持boolean indexing

res = pf[booly]
print(res)
# [[-46.35  33.25   2.  ]
# [  9.     3.     2.  ]]