掩码 numpy 数组将 nan 评估为 True

Gab*_*iel 4 python arrays numpy masking

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

aa = np.array([-4.793, -1.299, 0.453, np.nan, np.nan, 1.131, 0.684,  1.037])
Run Code Online (Sandbox Code Playgroud)

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

mask = -4. < aa
Run Code Online (Sandbox Code Playgroud)

其评估为

array([False, True, True, False, False, True, True, True], dtype=bool)
Run Code Online (Sandbox Code Playgroud)

这里有一个问题:我需要nan评估为True.

我正在寻找一个不涉及修改我的输入数组的通用解决方案aa

asc*_*ter 5

逻辑函数很简单

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]
Run Code Online (Sandbox Code Playgroud)