热线电话:13121318867

登录
2018-10-23 阅读量: 1127
如何建立稀疏矩阵?

在python第三方库中,直接导入调用 lil_matrix,即可建立稀疏矩阵。(以电影评分为例)

lil_matrix是使用两个列表存储非0元素。data保存每行中的非零元素,rows保存非零元素所在的列。这种格式也很适合逐个添加元素,并且能快速获取行相关的数据。

#建立用户-电影 评分稀疏矩阵
from scipy.sparse import lil_matrix

row_count=len(list(table.groupby("user_id")))
# col_count=len(list(movies.groupby("m_id")))
row_count

ratings=table.loc[:,"ratings"].values
len(ratings)

col_count=a[len(a)-1]
col_count

user_row=table.loc[:,"user_id"].values
print(user_row)
print(len(user_row))
#print(user_row[1193])
movie_col=table.loc[:,"m_id"].values
print(movie_col)
len(ratings)

#user_row=table.loc[:,"user_id"].values
#movie_col=table.loc[:,"m_id"].values
user_movie=lil_matrix((row_count,col_count))
print(user_movie.toarray())



for i in range(len(user_row)):
user_movie[user_row[i]-1,movie_col[i]-1]=ratings[i]
# print(user_movie[user_row[i]-1,movie_col[i]-1])
# print("##")
#print(len(user_movie))
print(user_movie.toarray())

print(type(user_movie))
user_movie_index_cols=range(1,3953)
user_movie_index_rows=range(1,6041)


type(user_movie)

user_movie=user_movie.toarray()
user_movie

#user_movie=np.array(user_movie)
#user_movie

user_movie=pd.DataFrame(user_movie)
user_movie.head()

user_movie.index=range(1,len(user_movie)+1)
user_movie.head()

#用户对电影的评分
user_movie.columns=range(1,3953)
user_movie.head()

输出结果:

0.0000
7
关注作者
收藏
评论(0)

发表评论

暂无数据
推荐帖子