IndexError: index 9 is out of bounds for axis 0 with size 9;数组下标溢出问题

在编写机器学习算法时遇到IndexError,原因是循环中索引超出数据集维度。博客作者通过检查发现,代码中对二维数据的索引使用错误,导致错误。修正后的代码正确地计算了特征平均值。此外,还介绍了如何使用round()函数截取浮点数到指定精度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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入
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值