Python-使用另一个数组的数组子集,获取索引器

Python-使用另一个数组的数组子集,获取索引器,python,numpy-ndarray,numpy-slicing,Python,Numpy Ndarray,Numpy Slicing,我在基于另一个数组的值切片一个数组的简单任务中遇到了麻烦 我有数组分数,形状: scores.shape = (1, 100, 1) 在一个批次中的每个图像中提供100次检测的置信度分数(但我使用的是单个图像,所以批次中只有一个元素)。 因此,对于第一个也是唯一一个图像,我有100个检测值:: scores[0] -> [score00, ..., score99] 然后,我有另一个类似的数组,bboxes…对于批处理中的每个图像(同样,仅使用一个图像),对于每个图像中的所有100个检

我在基于另一个数组的值切片一个数组的简单任务中遇到了麻烦

我有数组分数,形状:

scores.shape = (1, 100, 1)
在一个批次中的每个图像中提供100次检测的置信度分数(但我使用的是单个图像,所以批次中只有一个元素)。 因此,对于第一个也是唯一一个图像,我有100个检测值::

scores[0] -> [score00, ..., score99]
然后,我有另一个类似的数组,bboxes…对于批处理中的每个图像(同样,仅使用一个图像),对于每个图像中的所有100个检测,它包含4个值。 所以形状是:

bboxes.shape = (1, 100, 4)
对于唯一的图像,我有100个四倍的值

bboxes[0] -> [ [x_min, y_min, x_max, y_max], ..., [x_min, y_min, x_max, y_max] ]
在这100个四元组中,我只需要提取那些与分数中的元素对应的值高于某个阈值(0.5)的值。 所以,假设只有前两个分数高于临界值,我只想要前两个四位数

我正在尝试类似的东西:

print(bboxes[0][scores[0]>0.5])
但我得到了一个错误:

IndexError: boolean index did not match indexed array along dimension 1; dimension is 4 but corresponding boolean dimension is 1
我做错了什么?

试试这个:

for score, box in zip(scores[0], bboxes[0]):
    if score > 0.5:
        print(box)

分数[0]>0.5
是一个布尔值…是的,它很有效,非常感谢!老实说,我没有尝试这种方法,因为我试图找出在不使用for循环的情况下获取值的方法,但我还没有做到这一点。