我有一个2d numpy阵列,它是通过以下方式创建的:
array = dataset.to_numpy()
X = array[:, 1:]
我想使用OrdinalEncoder,但在X中有一些NaN我想估算。我不能运行OrdinalEncoder,因为它不喜欢NAN,而且在编码之前我不能运行KNI计算机
我知道我可以用诸如“?”之类的东西来替换Nan,然后OrdinalCoder()就可以工作了,但是我必须遍历并替换“?”变成Nan的数字。这意味着循环遍历OrdinalCoder内部,找出每列中的“?”映射到了什么,然后对该列进行替换
难道没有更好的办法吗?我试着让掩蔽工作,但没办法。我需要对X进行操作,而不是对数据集进行操作
如果您不再需要编码器,那么可以使用
pd.factorize
,它将所有np.nan转换为-1
,您需要将其放回np.nan
:对于注释来说太长了,但是如果您不介意复制的话,您可以将
NaN
临时移出数组你用
?
替换nan
的想法也没有错。你只需要记住它发生在哪里。据我所知,OrdinalCoder不会对您的数据进行洗牌,但我可能错了:再说一次,你可能已经想到了。。。如果是,请更新问题并指定您尝试过的内容
相关问题 更多 >
编程相关推荐