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)


暂无数据
推荐帖子
0条评论
0条评论
1条评论