我有两个数组(uint64_t
和gt
),其值范围从0到4。
这两个数组的形状为pred
。我的目标是创建一个忽略掩码并将其乘以gt和pred以忽略两个数组中的值。但是,我遇到了一个问题
(1, 1, 93, 349, 219)
为什么不删除ignore_value=4
if ignore_value is not None:
mask[gt!=ignore_value]=1 # ignore value mask
gt=mask*gt
pred=mask*pred # ignore value mask for pred
print "after removing ignore value: ", np.unique(gt),np.unique(pred)
output: after removing ignore value: [0 1 2 3] [0 1 2 3 4]
中的忽略值?
答案 0 :(得分:1)
IMO,一个更好的解决方案是使用布尔索引并将单元格显式设置为0。
gt[gt == ignore_value] = 0
pred[pred == ignore_value] = 0
通常,不能保证gt
和pred
在同一单元格中有ignore_value
,因此对它们两个都使用单个掩码是不合适的。
但是,上面的代码可以工作并且效率更高,因为它仅对数组的一小部分进行操作,而不是对数组的全部进行操作(就像将它们相乘一样)。是输出