我正在尝试将低于阈值的数组成员设置为 nan。这是 QA/QC 流程的一部分,传入的数据可能已经有 nan 的插槽。
例如,我的阈值可能是 -1000,因此我想在以下数组中将 -3000 设置为 nan
x = np.array([np.nan,1.,2.,-3000.,np.nan,5.])
以下是:
x[x < -1000.] = np.nan
会产生正确的行为,但也会产生 RuntimeWarning,但会产生禁用警告的开销
warnings.filterwarnings("ignore")
...
warnints.resetwarnings()
有点重,可能有点不安全。
尝试使用以下精美索引进行两次索引不会产生任何效果:
nonan = np.where(~np.isnan(x))[0]
x[nonan][x[nonan] < -1000.] = np.nan
我认为这是因为整数索引或使用两次索引而制作了副本。
有没有人有一个相对简单的解决方案?在过程中使用掩码数组会很好,但最终产品必须是 ndarray 并且我不能引入新的依赖项。谢谢。