相关疑难解决方法(0)

numpy数组与nan到标量的不等式比较

我试图将低于阈值的数组成员设置为nan.这是QA/QC过程的一部分,并且输入数据可能已经具有nan的时隙.

因此,作为示例,我的阈值可能是-1000,因此我想在以下数组中将-3000设置为nan

x = np.array([np.nan,1.,2.,-3000.,np.nan,5.])
Run Code Online (Sandbox Code Playgroud)

以下内容:

x[x < -1000.] = np.nan
Run Code Online (Sandbox Code Playgroud)

产生正确的行为,但也是RuntimeWarning,但是禁用警告的开销

warnings.filterwarnings("ignore")
...
warnints.resetwarnings()
Run Code Online (Sandbox Code Playgroud)

有点沉重,可能有点不安全.

尝试使用花式索引进行两次索引,如下所示不会产生任何影响:

nonan = np.where(~np.isnan(x))[0]
x[nonan][x[nonan] < -1000.] = np.nan
Run Code Online (Sandbox Code Playgroud)

我认为这是因为整数索引或使用索引两次进行复制.

有人有一个相对简单的解决方案吗?在这个过程中使用一个蒙面数组会很好,但最终的产品必须是一个ndarray,我不能引入新的依赖.谢谢.

python indexing inequality numpy nan

16
推荐指数
3
解决办法
7824
查看次数

标签 统计

indexing ×1

inequality ×1

nan ×1

numpy ×1

python ×1