我正在尝试标记我的数据,并且我想标记我的所有数据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)
然后我有另一组数据,他们的标签不是字符串, 所以我把代码更改为:
#iris-setosa
train_t = df.iloc[0:120, 4].values
validation_t = df.iloc[121: , 4].values
classNum = 20
train_t1 = np.where(train_t == classNum, -1, 1)
validation_t1 = np.where(validation_t == classNum, -1, 1)
并且它没有正确标记我的数据,而是将它们全部标记为0!
然后我尝试使用if
代替np.where
编写代码,如下所示:
#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而不是我想要的结果。
答案 0 :(得分:0)
您的train_t或者validation_t似乎在某个时刻获得了一个int值。
错误
'int' object is not subscriptable
使用类似列表的时会出现
e.g。
x = 5
x[0]
TypeError: 'int' object is not subscriptable
答案 1 :(得分:0)
您可能选择了错误的轴,因为它与您使用'Iris-setosa'
时的轴相同。更改轴应该可以解决您的问题。