TypeError:“int”对象在if语句中不可订阅

2024-09-30 04:31:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试标记我的数据,我希望将所有数据标记为1或-1。 我有一段代码,以前很好用。在

#iris-setosa
train_t = df.iloc[0:120, 4].values
validation_t = df.iloc[121: , 4].values

train_t1 = np.where(train_t == 'Iris-setosa', -1, 1)
validation_t1 = np.where(validation_t == 'Iris-setosa', -1, 1)

然后我有另一组数据他们的标签不是字符串, 所以我把代码改成了:

^{pr2}$

它没有正确标记我的数据,而是将它们全部标记为0!在

然后我试图用if代替{}来编写代码:

#iris-setosa
train_t = df.iloc[0:120, 4].values
validation_t = df.iloc[121: , 4].values

classNum = 20
for i in range (1000):
if (train_t[i] == classNum):
    train_t[i] = 1
else:
    train_t[i] = -1
if (validation_t[i] == classNum):
    validation_t[i] = 1
else:
    validation_t[i] = -1

我得到这个错误TypeError: 'int' object is not subscriptable
更新:显然这个错误是无缘无故地消失了,相反,我所有的数据都被标记为-1,这不是我想要的结果。在


Tags: 数据代码标记irisdfifnptrain
2条回答

似乎您的训练或验证在某个时刻得到了一个int值。在

错误

'int' object is not subscriptable 

在使用像list这样的int时发生

例如

^{pr2}$

您可能选择了错误的轴,因为它与使用'Iris-setosa'时相同。改变轴应该能解决你的问题。在

相关问题 更多 >

    热门问题