【发布时间】:2017-02-07 01:54:58
【问题描述】:
对于从x 到y 可能包含NaN 的数字列表,我如何在0 和1 之间进行归一化,忽略NaN 值(它们保持为NaN)。
通常我会使用来自sklearn.preprocessing 的MinMaxScaler (ref page),但这不能处理NaN,并建议根据平均值或中值等来估算值。它不提供忽略所有NaN 值。
【问题讨论】:
-
使用
np.nanmax和np.nanmin代替np.max和np.min,其余的应该可以正常工作。 -
所以,基本上:
(a-np.nanmin(a))/(np.nanmax(a) - np.nanmin(a)). -
pandas 也可以优雅地处理
NaNs,所以一个简单的(a - a.min()) / (a.max() - a.min())就可以完成这项工作。
标签: python pandas numpy scikit-learn