如何基于另一个numpy 2darray的argmin创建numpy布尔2darray?

时间:2019-07-19 19:15:41

标签: python arrays numpy matrix

我有一个带有numpy的蒙版2d数组,看起来像这样:

?

我想要一个结果2darray,它的每一行的最小非掩码值为1.73 2.48 -- 9.80 -- 4.98 2.01 -- 3.81 -- 2.35 4.53 -- 2.45 -- 6.54 8.43 -- 2.13 -- 8.45 4.58 -- 2.49 -- ,其余的为True。所以:

False

我尝试做True False -- False -- False True -- False -- True False -- False -- False False -- True -- False False -- True -- ,但是由于带掩码的数字,这似乎不起作用。

1 个答案:

答案 0 :(得分:1)

这应该为您做到,我相信它对于非正方形阵列和具有不规则蒙版的阵列已经足够了。

data = [[i == j for j in range(a.shape[-1])] for i in a.argmin(axis=1)]
result = np.ma.masked_array(data=data, mask=a.mask)

如果您不需要result上的遮罩,则可以直接使用data