Python Numpy:堆叠遮罩阵列并计算最小/最大值

Python Numpy:堆叠遮罩阵列并计算最小/最大值,python,numpy,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(

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

例如:

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()忽略了
蒙版阵列的蒙版

对于屏蔽数组,您需要使用屏蔽例程,即
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

thx,工作完美!我只尝试了np.ma.max方法,但没有与np.ma.hstack一起使用。