IndexError: index 9 is out of bounds for axis 0 with size 9

​ 今天在写一个机器学习算法的时候遇到了这样一个问题,算法原型的一部分是想要求样本数据特征平均值,本身是很简单,但是报出一个

IndexError: index 9 is out of bounds for axis 0 with size 9 错误。。。。翻译一下:索引9超出轴0的大小为9的界限。

问题的解决

首先我要处理的训练集类似这样:(只是一个部分的比喻)

在这里插入图片描述

数据集特征个数为9,因为是表格是二维的,我在设置循环时候错误的写成了X_train[j],[i], 因为x[n],[m]代表第n+1行的第m+1个数,前面X_train[j],[i], 写错了i,和j的位置,i最大43500 肯定远超过了9,所以报了个大大的红!!!

  • 改正后的代码如下,X_train[i],[j],才是正解。。
for j in range(len(X_train[0])):#j(0-9)
    valsum=0
    for i in range(len(X_train)):#i(0-43500)
        valsum+=X_train[i][j]
    valsum/=len(X_train)
    avg.append(valsum)

另外记录一下,当想取指定长度的浮点数,可以使用round()函数;

a = 3.1415926
print(round(a, 4))
# 3.142 会自动进位4舍5入
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐