我正在阅读有关Python中的一种热门编码的信息,其中有一行我无法解释其含义。代码如下:
ohe=preprocessing.OneHotEncoder(dtype=np.int,sparse=True,handle_unknown="ignore")
data=ohe.fit_transform(df[["country"]])
问题是当我打印如下类别的值时:
print (ohe.categories_)
打印
[array(['EEUU', 'France', 'Portugal', 'Italy'], dtype=object)]
但是当我这样做时:
print (ohe.categories_[0])
['EEUU', 'France', 'Portugal', 'Italy']
我无法找到[0]的作用,似乎它从数组转换为列表,但是为什么不使用诸如tolist()函数之类的东西呢?
我已经在网上搜索过,但是找不到该表达式的解释,有帮助吗?
谢谢
最佳答案
[array(['EEUU', 'France', 'Portugal', 'Italy'], dtype=object)]
是具有一个对象的列表。该对象是一个numpy数组。当您执行ohe.categories_[0]
时,您访问该列表的第一项-恰好是列表中的唯一项。ohe.categories_
返回一个列表,因为它为输入中的每一列返回一个不同的numpy
数组。由于df[["country"]]
仅具有一列,因此它返回仅包含一个对象的列表。
例如,如果您执行df[["country", "second_column"]]
,则将获得包含两个数组的列表,并为每个数组说明类别。