屏蔽将 nan 评估为 True 的 numpy 数组

Mask numpy array evaluating nan as True

考虑一个包含数据的 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

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]