我试图将多维布尔索引用于多维数组。这是我想要做的简单版本。
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]])
我尝试过但失败了。谢谢你们。
答案 0 :(得分:2)
numpy支持boolean indexing:
res = pf[booly]
print(res)
# [[-46.35 33.25 2. ]
# [ 9. 3. 2. ]]