为什么在 OneHotEncoding 分类数据时会得到额外的零?

Why do I get extra zeros while OneHotEncoding categorical data?

直接来自 Udemy 上的机器学习课程,关于编码分类数据的讲座提供了一个 CSV 文件来进行编码。 该文件的内容相当简单:

创建特征矩阵,我可以很容易地得到数据的值。 但是在使用 sklearn(comlumn transformer)中的 OneHotEncoder 时,“国家列”分成 3 个不同的列,给出的值如下所示:

然而,对于相同的数据和相同的代码,讲师得到一位小数。 似乎无法理解我是否做错了什么,或者负责此问题的平台版本是否发生了变化。 我怎样才能得到单个小数位而不是多个零。

编码代码:

from sklearn.compose import ColumnTransformer
from sklearn.preprocessing import OneHotEncoder
ct = ColumnTransformer(transformers =[('encoder',OneHotEncoder(),[0])], remainder = 'passthrough')
X = np.array(ct.fit_transform(X))

编辑:

第 1 行的预期输出:

[1.0 0.0 0.0 44.0 72000.0]

我得到的输出:

[1.00000000e+00 0.00000000e+00 0.00000000e+00 4.40000000e+01 7.20000000e+04]

忘记我写的一切。 如果你想看看会发生什么,只需输入这一行...

np.set_printoptions(suppress=True) #just to print nicely - you may remove it

我完全被这个问题搞糊涂了...