Python 索引器:索引太多
我正在尝试使用scikit中的一个算法来学习根据大量输入预测输出。我似乎得到了返回的错误“索引太多”,但无法找出原因 CSV文件培训:Python 索引器:索引太多,python,numpy,scikit-learn,Python,Numpy,Scikit Learn,我正在尝试使用scikit中的一个算法来学习根据大量输入预测输出。我似乎得到了返回的错误“索引太多”,但无法找出原因 CSV文件培训: 1.1 0.2 0.1 0 0.12 0.1 1.4 0.2 0.1 0.1 0.14 0.1 0.1 0.1 0.1 0 0.26 0.1 24.5 0.1 0 0.1 0.14 0.1 0.1 0.1 0.1 0 0.25 0.1 代码: 错误: t = fileCSVT
1.1 0.2 0.1 0 0.12 0.1
1.4 0.2 0.1 0.1 0.14 0.1
0.1 0.1 0.1 0 0.26 0.1
24.5 0.1 0 0.1 0.14 0.1
0.1 0.1 0.1 0 0.25 0.1
代码:
错误:
t = fileCSVTraining[:, 6:]
IndexError: too many indices
根据评论,我认为您需要:
fileCSVTraining = genfromtxt('TrainingData.csv')
然后,要获得“前6行”,您将使用
t = fileCSVTraining[:6, :]
(我假设您的实际数据文件比您显示的要长。您的示例只有5行。)
我怀疑您使用数组索引来获取
r
也是不正确的。请打印x
和y
变量,您可能会看到数据无效的原因,并进行相应的修复
最后一行:
X_new = [1.0, 2.1, 3.0, 2.4, 2.1]
b = clf.predict(X_new)
应该是:
X_new = [[1.0, 2.1, 3.0, 2.4, 2.1]]
b = clf.predict(X_new)
正如predict所期望的那样,一个样本集合(2D数组的
(n个新样本,n个功能)
)不是一个样本。获取r和t的数组索引不正确。使用:
t = fileCSVTraining[:, 1-0:]
给我所需的训练数据,离开预测栏 指定dtype=float也很重要,因为“无”将允许整数(如果数据中有)包含在数组中,这将强制使用一维数组而不是二维数组。如图所示,索引在一维上不起作用。我认为如果您尝试在二维中索引一维数组,则会发生此错误,虽然不完全确定这可能不是问题,但您在读取文件时使用的是
分隔符=','
,虽然这些值由空格分隔,但它们与CSV文件中的小数点有关
t = fileCSVTraining[:, 1-0:]