用KBINS离散化器处理nan值

2024-04-26 12:50:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个numpy数组,看起来像这样

A = np.random.randn(100, )
A.ravel()[np.random.choice(A.size, 10, replace=False)] = np.nan

np.nan表示缺少的值很少

我正试着在它上面放上一个开胃菜。我想将非空值按常规装箱,并将空值标记为单独的装箱

在尝试正常拟合KBinsDiscretizer时,由于数据中存在np.nan,我得到了以下错误

est = KBinsDiscretizer(n_bins=5, encode='ordinal', strategy='quantile')
est.fit(A.reshape(-1, 1))

ValueError: Input contains NaN, infinity or a value too large for dtype('float64').

这方面有什么办法吗?我想正常地存储非空值,并为空值创建一个额外的存储库


Tags: numpyfalsesizenprandom数组nanreplace