在感知器示例中列出索引超出范围

时间:2017-07-04 02:04:23

标签: python arrays list machine-learning

我有这段代码,旨在根据它是否等于Iris-versicolor将2D数组的单元格的值更改为1或0。

for row in data:
    if (row[4] == "Iris-versicolor"):
        row[4] == 1
    else:
        row[4] == 0

问题是它在if语句的行"IndexError : list index out of range"上给出了错误。我理解错误(我认为)说我试图访问一个不存在的单元格,除了我已经检查过并且我的数据数组确实有第5列(索引为4)并且我不知道#39;看看错误可能来自何处。

非常感谢任何帮助,

Mindoo

编辑:这是我正在使用的数据库的链接。 众所周知的Iris database

2 个答案:

答案 0 :(得分:3)

尝试更改

row[4] == 1 

row[4] = 1

也是行[4] = 0

答案 1 :(得分:0)

如果您的数据是列表列表

for row in data:
    if len(row) >= 4:
        if (row[4] == "Iris-versicolor"):
            row[4] = 1
        else:
            row[4] = 0

在访问之前检查行是否至少有5个元素。