我正在尝试使用python代码来训练和测试推荐系统的数据,当它显示TypeError:未分配的操作数类型。
#creating user_job matrices for trainning and testing
train_data_matrix=np.zeros((n_users,n_jobs))
for line in train_data.itertuples():
# print(n_users)
train_data_matrix[line[1]-1,line[2]-1]=line[3]
print(train_data_matrix
。
TypeError Traceback (most recent call last)
<ipython-input-112-8bf50ecb6b71> in <module>
3 for line in train_data.itertuples():
4 # print(n_users)
----> 5 train_data_matrix[line[1]-1,line[2]-1]=line[3]
6 print(train_data_matrix)
TypeError: unsupported operand type(s) for -: 'str' and 'int'
请帮助我解决这个问题
答案 0 :(得分:0)
使用int
将字符串转换为整数。
#creating user_job matrices for trainning and testing
train_data_matrix=np.zeros((n_users,n_jobs))
for line in train_data.itertuples():
# print(n_users)
train_data_matrix[int(line[1])-1,int(line[2])-1]=int(line[3])
print(train_data_matrix)
line[1]
是str
类型,这就是出错的原因。通过line[1]
检查print(type(line[1]))
的类型。