屏蔽将 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
。
就很简单了
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]
考虑一个包含数据的 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
。
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]