【问题标题】:Numpy: Stacking masked Arrays and calculating min/maxNumpy:堆叠蒙面数组并计算最小值/最大值
【发布时间】:2014-07-25 11:35:28
【问题描述】:

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

例子:

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() 忽略了 掩码数组的掩码?

【问题讨论】:

    标签: python numpy


    【解决方案1】:

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

    【讨论】:

    • 谢谢,完美!我只尝试了 np.ma.max 方法,但没有与 np.ma.hstack 一起尝试。
    猜你喜欢
    • 1970-01-01
    • 2016-08-24
    • 1970-01-01
    • 2021-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-29
    相关资源
    最近更新 更多