我正在使用蒙面数组,我想计算不同数组/列的最大值。我有问题,如果整个阵列被掩盖了。
示例:
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()忽略了 蒙面数组的掩码?
答案 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