掩盖numpy数组,将nan评估为True

时间:2018-02-02 14:07:37

标签: python arrays numpy masking

考虑一个带有数据的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 个答案:

答案 0 :(得分:4)

使用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]