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

Python中如何将二维列表转为一维列表并将NaN替换为0

二维数组转一维+替换NaN为0的实现方法

场景1:使用NumPy处理(适合原始数据为NumPy二维数组)

如果你的训练数据是NumPy格式的二维数组,直接用以下代码就能搞定:

import numpy as np

# 模拟你的原始二维数组
original_arr = np.array([
    [0], [0], [0], [1049.3618], [1049.3618], [1049.3618],
    [1047.8524], [1034.0015], [1011.92944], [997.6305],
    [985.61743], [971.35583], [953.3492], [934.00104],
    [912.93585], [886.3636], [857.08594], [832.37103],
    [803.3781], [775.04083]
])

# 1. 转成一维数组:用flatten()生成新数组,或者ravel()返回原数组视图
one_d_arr = original_arr.flatten()

# 2. 替换NaN为0:直接用nan_to_num处理
one_d_arr = np.nan_to_num(one_d_arr, nan=0)

# 转成普通Python列表输出(可选)
print(one_d_arr.tolist())

场景2:纯Python列表处理(适合原始数据为嵌套列表)

如果数据是普通的嵌套列表,用列表推导式就能完成转换和替换:

# 模拟原始嵌套列表
original_list = [
    [0], [0], [0], [1049.3618], [1049.3618], [1049.3618],
    [1047.8524], [1034.0015], [1011.92944], [997.6305],
    [985.61743], [971.35583], [953.3492], [934.00104],
    [912.93585], [886.3636], [857.08594], [832.37103],
    [803.3781], [775.04083]
]

# 1. 转成一维列表
one_d_list = [item[0] for item in original_list]

# 2. 替换NaN为0(需要导入numpy判断NaN,或者用math.isnan)
import numpy as np
one_d_list = [0 if isinstance(x, float) and np.isnan(x) else x for x in one_d_list]

print(one_d_list)

关键说明

  • flatten() vs ravel():前者返回新数组,修改不会影响原数组;后者返回原数组的视图,修改会同步到原数组,按需选择即可。
  • 替换NaN:如果不用NumPy,也可以用math.isnan(),但要注意它只能处理float类型,整数不会有NaN,所以需要先判断类型。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 13:50:17