对于sklearn中的回归,我有一个列表x
和一个列表y
。不幸的是,这些列表有空白/ NaN。 NaN会破坏任何分析,因此我需要删除其他列表中的每个NaN及其对应的数字(以保持x[0]
和y[0]
之间的关系等。)
找到这个的优雅方法是什么?是否有替代循环?
答案 0 :(得分:1)
def filter_nans(x, y):
filtered = filter(lambda o: not math.isnan(o[0]) and not math.isnan(o[1]), zip(x, y))
return [el[0] for el in filtered], [el[1] for el in filtered]
例如:
x = [1, 2, 3, 4, 5, 6, None, 8]
y = [10, 'not a number', 30, 40, 50, 60, 70, 80]
x, y = filter_nans(x, y)
>>> x
[1, 3, 4, 5, 6, 8]
>>> y
[10, 30, 40, 50, 60, 80]