python这样的数据集,第一列是用户,第二列是电影,第三列是评分,第四是时间之类的. 30
怎么转化为评分矩阵,评分矩阵是一个全部是评分的矩阵,行是一个用户对于所有电影的评分,列是某个电影所有用户对它的评分。...
怎么转化为评分矩阵,评分矩阵是一个全部是评分的矩阵,行是一个用户对于所有电影的评分,列是某个电影所有用户对它的评分。
展开
1个回答
展开全部
# 读文件
f=open('e:/python27/view_c.txt','r')
lines=f.readlines()
f.close()
# 按行写入列表list1
# 并统计总行数、人数、影片数
list1=[]
num=0
maxrow=0
maxcol=0
for line in lines:
list1.append([])
for st in line.split('\t'):
list1[num].append(int(st))
if list1[num][0]>maxrow:
maxrow=list1[num][0]
if list1[num][1]>maxcol:
maxcol=list1[num][1]
num+=1
# 按人数、影片数创建全为0值的二维数组list2
list2=[]
for i in range(0,maxrow):
list2.append([])
for j in range(0,maxcol):
list2[i].append(0)
# 填充二维数组list2
for i in range(0,num):
id=list1[i][0]-1
jd=list1[i][1]-1
kd=list1[i][2]
list2[id][jd]=kd
# 二维数组list2
for i in range(0,maxrow):
for j in range(0,maxcol):
print(list2[i][j],' ',end='')
print('\n')
f=open('e:/python27/view_c.txt','r')
lines=f.readlines()
f.close()
# 按行写入列表list1
# 并统计总行数、人数、影片数
list1=[]
num=0
maxrow=0
maxcol=0
for line in lines:
list1.append([])
for st in line.split('\t'):
list1[num].append(int(st))
if list1[num][0]>maxrow:
maxrow=list1[num][0]
if list1[num][1]>maxcol:
maxcol=list1[num][1]
num+=1
# 按人数、影片数创建全为0值的二维数组list2
list2=[]
for i in range(0,maxrow):
list2.append([])
for j in range(0,maxcol):
list2[i].append(0)
# 填充二维数组list2
for i in range(0,num):
id=list1[i][0]-1
jd=list1[i][1]-1
kd=list1[i][2]
list2[id][jd]=kd
# 二维数组list2
for i in range(0,maxrow):
for j in range(0,maxcol):
print(list2[i][j],' ',end='')
print('\n')
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询