我正在以下数据集上完成有关Udemy的Python机器学习课程(仅显示前几行)
R&D Spend Administration Marketing Spend State Profit
0 165349 136898 471784 New York 192262
1 162598 151378 443899 California 191792
2 153442 101146 407935 Florida 191050
3 144372 118672 383200 New York 182902
该课程于2016年完成,因此某些模块已更新,我在代码中进行了更改(例如:使用ColumnTransformer make_column_transformer)。该代码的输出应该是一个浮点数组(在Udemy教程中),但是由于某种原因,在代码更新后,我的变量x
被认为是一个{ {1}}对其进行处理之后。我不确定为什么,因为当我打印变量ndarray object
时,它会打印出一个浮点数数组。
原始数据文件位于文件x
中的this link(zip文件夹)中。
我尝试添加50_startups.csv
,但这破坏了代码。
谢谢
.toarray()
答案 0 :(得分:1)
在这种情况下,我认为这只是输入和输出中混合数据类型的结果。例如,如果您检查x
:
x
array([[165349, 136898, 471784, 'New York'],
[162598, 151378, 443899, 'California'],
[153442, 101146, 407935, 'Florida'],
[144372, 118672, 383200, 'New York']], dtype=object)
您将看到它具有dtype=object
。这是由于数组中整数和字符串的混合。因此,直通阵列(R&D支出,管理和营销支出)保持相同的dtype
。然后在fit_transform
内将此数组与OneHotEncoder
转换的结果堆叠在一起以产生结果。这样,输出dtype
与您提供的输入相同。
如果您想更改dtype
,则始终可以使用.astype(float)
。