3
我有一個CSV文件格式如下:如何在scipy中創建收視率csr_matrix?
userId movieId rating timestamp
1 31 2.5 1260759144
2 10 4 835355493
3 1197 5 1298932770
4 10 4 949810645
我想構建具有行作爲用戶id和列movieID稀疏矩陣。 我已將所有數據存儲爲名爲「列」的字典,其中列['user']包含用戶ID,列['movie']包含電影ID,列['rating']的評分如下:
f = open('ratings.csv','rb')
reader = csv.reader(f)
headers = ['user','movie','rating','timestamp']
column = {}
for h in headers:
column[h] = []
for row in reader:
for h, v in zip(headers, row):
column[h].append(float(v))
當我打電話稀疏矩陣功能:
mat = scipy.sparse.csr_matrix((column['rating'],(column['user'],column['movie'])))
我得到 「類型錯誤:無效的形狀」
請幫
這不會創建一個稀疏矩陣的行作爲用戶,列作爲電影和[行,列]作爲評級?我們如何創建一個稀疏矩陣,其中用戶爲行,電影爲列,額定值爲[行,列]處的值? – shane
原始命令「mat = scipy.sparse.csr_matrix((column ['rating'],(column ['user'],column ['movie'])))」除列['user']外是正確的,在使用函數之前,column ['rating']和column ['movie']被轉換爲數組。 – Alice