我正在使用指定索引在当前索引值和上一个最小值之间进行逐元素比较,沿着指定的轴遍历一个大型屏蔽数组。
下面是一个简化的示例来说明此问题。如果其中一个值被屏蔽而另一个有效,则numpy.minimum()
返回一个被屏蔽的值。是否有可能更改此行为,从而改为返回有效值?
x = np.random.randn(5).round(2)
x[[2,4]] = np.nan
print(x)
print(np.minimum(x[-1], x[-2]))
y = np.ma.masked_invalid(x)
print(y)
print(np.minimum(y[-1], y[-2]))
>> [-1.21 2.02 nan -0.31 nan]
>> nan
>> [-1.21 2.02 -- -0.31 --]
>> --
相反,我希望返回值为-0.31。
在这个简单的示例中,我可以使用y.compressed()
或类似的方法,但是在我的情况下,我有多个尺寸,因此无法使用。
当前,我使用一个很高的fill_value,它之所以起作用是因为数据受到物理约束,但是我想有一个更通用的解决方案。