数据集包含数值和类别变量,然后将其分为两部分:
cont_data = data[cont_variables].values
disc_data = data[disc_variables].values
然后,我使用sklearn.preprocessing.OneHotEncoder对分类数据进行编码,然后尝试将编码的分类数据与数值数据合并:
np.concatenate((cont_data, disc_data_coded), axis=1)
但是会发生以下错误:
ValueError: all the input arrays must have same number of dimensions
我确保尺寸数相等:
print(cont_data.shape) # (24000, 35)
print(disc_data_coded.shape) # (24000, 26)
最后,我发现cont_data是一个numpy数组,而
>>> disc_data_coded
<24000x26 sparse matrix of type ''
with 312000 stored elements in Compressed Sparse Row format>
我将OneHotEncoder中的参数sparse更改为False,一切正常.
但是问题是,如何在不设置sparse = False的情况下直接将numpy数组与稀疏矩阵合并?