我正在学习sklearn模块以及如何分割数据。
我按照指令代码
categories = ['alt.atheism', 'talk.religion.misc', 'comp.graphics',
'sci.space']
newsgroups_train = fetch_20newsgroups(subset='train',
remove=('headers', 'footers',
'quotes'),
categories=categories)
newsgroups_test = fetch_20newsgroups(subset='test',
remove=('headers', 'footers',
'quotes'),
categories=categories)
num_test = len(newsgroups_test.target)
test_data, test_labels = int(newsgroups_test.data[num_test/2:]),
int(newsgroups_test.target[num_test/2:])
dev_data, dev_labels = int(newsgroups_test.data[:num_test/2]),
int(newsgroups_test.target[:num_test/2])
train_data, train_labels = int(newsgroups_train.data),
int(newsgroups_train.target)
print('training label shape:', train_labels.shape)
print( 'test label shape:', test_labels.shape)
print( 'dev label shape:', dev_labels.shape)
print('labels names:', newsgroups_train.target_names)
TypeError Traceback(最近一次调用最后一次) in() 8 9 num_test = len(newsgroups_test.target) ---> 10 test_data,test_labels = int(newsgroups_test.data [num_test / 2:]),int(newsgroups_test.target [num_test / 2:]) 11 dev_data,dev_labels = int(newsgroups_test.data [:num_test / 2]),int(newsgroups_test.target [:num_test / 2]) 12 train_data,train_labels = int(newsgroups_train.data),int(newsgroups_train.target)
TypeError:切片索引必须是整数或无或具有索引方法
不确定是什么问题。
谢谢你们
答案 0 :(得分:2)
虽然我对scikits数据加载器不是很熟悉,但如果您使用 python3 ,则错误可能无关。您应该进行整数除法,因为[]
运算符需要整数值。尝试使用除法运算符//
,它确保返回的值是一个整数,如果两个args都是整数,基本上是math.floor(a/b)
。在python3中,除非两个参数都是整数,否则除法运算符/
返回一个不是整数的浮点数。
尝试更改
num_test/2
到
num_test//2
示例:
newsgroups_test.target[num_test//2:]
在某些python2版本中也可以使用运算符//
。