Numpy:堆叠蒙面数组并计算最小值/最大值

时间:2014-07-25 11:35:28

标签: python numpy

我正在使用蒙面数组,我想计算不同数组/列的最大值。我有问题,如果整个阵列被掩盖了。

示例:

import numpy as np

x = np.ma.array(np.array([1,2,3,4,100]),mask=[True,True,True, True, True])
y = 5

print(np.max(np.hstack((x, y))))
print np.max((np.max(y), np.max(x)))
print(np.max((np.hstack((np.max(x), 5)))))

结果:

100
nan
--

我发现结果很奇怪,因为结果应该是5.为什么hstack()忽略了 蒙面数组的掩码?

1 个答案:

答案 0 :(得分:3)

使用掩码数组,您需要使用掩码例程,numpy.ma.应位于方法名称之前:

>>> np.ma.hstack((x, y))
masked_array(data = [-- -- -- -- -- 5],
             mask = [ True  True  True  True  True False],
       fill_value = 999999)

>>> np.ma.max(np.ma.hstack((x, y)))
5