首页 > 解决方案 > 如何在 python 中跳过缺失的 NaN 值同时替换它们?

问题描述

我希望能够在维护 NaN 值的列表上运行 numpy 命令。基本上,我想对两个列表变量进行线性回归。一个变量包含 NaN,所以我不能对其进行线性回归。但是,如果我删除 NaN 值,那么我的列表的大小与不包含 NaN 的列表的大小不匹配。例如,

x = [1,2,3,4,5,NaN] 如果我删除 NaN 值,则大小x变为 5 y = [1,2,3,4,5,6] 大小y为 6

(x,y) = (1,1), (2,2), (3,3), (4,4), (5,5), (NaN, 6)

我希望我的线性回归跳过数据点 (NaN, 6)

我怎样才能做到这一点?

标签: pandasnumpymatplotlibscikit-learnlinear-regression

解决方案


您需要按条件过滤两个数组,而不仅仅是其中一个。

import numpy as np
x = np.array([1,2,np.NaN,4,5,np.NaN])
y = np.array([1,2,3,4,5,6])

condition = ~np.isnan(x)
xp = x[condition]
yp = y[condition]

print(xp)
print(yp)

所以两个数组都打印为[1 2 4 5].


推荐阅读