不使用Numpy,如何模拟.nansum方法?附示例
模拟Numpy的.nansum方法(无Numpy依赖)
核心逻辑很直接:遍历目标列表,跳过所有NaN值,累加剩下的有效数值即可。
实现步骤:
- 导入
math模块,用math.isnan()判断元素是否为NaN(注意:Python里的NaN是float('nan'),整数类型不存在NaN) - 定义函数并初始化总和为0
- 遍历列表中的每个元素,若元素不是
NaN则累加到总和 - 返回最终计算的总和
代码示例:
import math def nansum(lst): total = 0.0 for num in lst: if not math.isnan(num): total += num return total # 测试示例 x = [1, float('nan'), 2, 10] print(nansum(x)) # 输出:13.0
补充说明:
- 如果列表全是
NaN,函数会返回0.0,和Numpy.nansum的行为一致 - 若列表包含非数值类型(如字符串),可额外添加
isinstance(num, (int, float))判断避免报错
内容的提问来源于stack exchange,提问作者Papayapap
相关产品推荐
相关产品推荐

