我正在阅读有关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()函数之类的东西呢?
我已经在网上搜索过,但是找不到有关此表达式的说明,有帮助吗?
谢谢
答案 0 :(得分:1)
[array(['EEUU', 'France', 'Portugal', 'Italy'], dtype=object)]
是带有一个对象的列表。该对象是一个numpy数组。当您执行ohe.categories_[0]
时,将访问此列表的第一项-恰好是列表中的唯一项。
ohe.categories_
返回一个列表,因为它为输入中的每一列返回了一个不同的numpy
数组。由于df[["country"]]
仅具有一列,因此它返回仅包含一个对象的列表。
例如,如果您进行了df[["country", "second_column"]]
,则将获得包含两个数组的列表,并为每个数组说明类别。