You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中如何将数组X中非NaN的所有元素替换为10.0?

一步替换numpy数组中非NaN元素为10.0的方法

当然有一步到位的实现方式,这里提供两种常用的简洁写法:

方法1:使用np.where()生成新数组

np.where()可以根据条件直接返回替换后的新数组,一步完成判断和赋值:

import numpy as np
from numpy import nan

X = np.array([[3.25774286e+02, 3.22008654e+02, nan, 1.85356823e+02,
        1.85356823e+02, 3.22008654e+02, nan, 3.22008654e+02]])

# 一步替换:NaN保留,非NaN替换为10.0
X = np.where(np.isnan(X), X, 10.0)
print(X)

执行后输出:

[[10. 10. nan 10. 10. 10. nan 10.]]

方法2:布尔索引原地修改数组

如果不需要生成新数组,想直接修改原数组,用布尔索引一步搞定:

import numpy as np
from numpy import nan

X = np.array([[3.25774286e+02, 3.22008654e+02, nan, 1.85356823e+02,
        1.85356823e+02, 3.22008654e+02, nan, 3.22008654e+02]])

# 选中所有非NaN的位置,直接赋值为10.0
X[~np.isnan(X)] = 10.0
print(X)

输出结果和上面完全一致。

两种方法都属于一步操作,前者返回新数组,后者原地修改原数组,可根据实际需求选择。

内容的提问来源于stack exchange,提问作者Wiz123

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 08:06:29