npzeros + itertuples替代

时间:2018-07-02 06:06:46

标签: python pandas numpy

我有一个像这样的数据框:

user_id anime_id    user_rating
0   1   20  7.808497
1   3   20  8.000000
2   5   20  6.000000
3   6   20  7.808497
4   10  20  7.808497

它看起来像是与推荐系统一起播放的基本数据框。

我有大约700万行,我像这样减少了数据框:

df = df[df["user_id"] < 2000]

让我们打印n_users,n_items,我当然有1999个用户,并且有〜6000items

我有2个问题。 如果我想建立这样的训练数据集:

ratings = np.zeros((n_users, n_items))
for row in df.itertuples():
    ratings[row[1]-1, row[2]-1] = row[3]

使用ratings = np.zeros((n_users, n_items)),我得到了一个庞大的矩阵,导致内存错误

如果我过滤了一些样本,则会遇到第二个问题,该行不会返回内存错误,但是我有一个 IndexError

像这样:IndexError: index 950 is out of bounds for axis 0 with size 949

0 个答案:

没有答案