代码之家  ›  专栏  ›  技术社区  ›  Gabriel

掩码numpy数组将nan计算为True

  •  4
  • Gabriel  · 技术社区  · 7 年前

    考虑一个 numpy 包含数据的数组:

    aa = np.array([-4.793, -1.299, 0.453, np.nan, np.nan, 1.131, 0.684,  1.037])
    

    我需要创建一个这样的面具:

    mask = -4. < aa
    

    其计算结果为

    array([False, True, True, False, False, True, True, True], dtype=bool)
    

    问题是:我需要 nan 要计算的值 True .

    我想要一个 全体的 不涉及修改输入数组的解决方案 aa .

    1 回复  |  直到 7 年前
        1
  •  5
  •   ascripter    7 年前

    这很简单 logic function

    import numpy as np
    
    aa = np.array([-4.793, -1.299, 0.453, np.nan, np.nan, 1.131, 0.684,  1.037])
    
    mask = np.logical_or(-4 < aa, np.isnan(aa))
    
    print mask
    # [False  True  True  True  True  True  True  True]