Python 多维布尔索引到多维数组

Python 多维布尔索引到多维数组,python,numpy,multidimensional-array,indexing,boolean,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

我试图将多维布尔索引用于多维数组。下面是我试图做的一个简单版本

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]])
我试过了,但失败了。谢谢大家。

numpy支持:


我已经试过了,但我不明白为什么在我的现实生活代码中没有这样做,据我所知,除了维度要大得多的事实之外,它们是完全一样的。我一定在什么地方出错了。谢谢,不过至少我知道我没有疯
res = pf[booly]
print(res)
# [[-46.35  33.25   2.  ]
# [  9.     3.     2.  ]]