我有一个csv文件,其中包含约3000个用户(行)中约56,124个项目(列)的用户评分。评分是小于128的整数。我具有此功能:
def sparse_to_npz(file, npz):
print("Reading " + file + " ...")
data_items = pd.read_csv(file)
# Create a new dataframe without the user ids.
data_items = data_items.drop('u', 1)
# As a first step we normalize the user vectors to unit vectors.
# magnitude = sqrt(x2 + y2 + z2 + ...)
magnitude = np.sqrt(np.square(data_items).sum(axis=1))
# unitvector = (x / magnitude, y / magnitude, z / magnitude, ...)
data_items = data_items.divide(magnitude, axis='index')
del magnitude
print("Saving to " + npz)
data_sparse = sparse.csr_matrix(data_items)
del data_items
sparse.save_npz(npz, data_sparse)
#np.save("columns", data_items.columns.values)
,它传递了两个文件:输入csv文件(稀疏,每个具有所有项目评分的用户),并应输出npz文件以节省内存。使用熊猫读取文件并将其存储在data_items
中之后,我们需要计算大小并将data_items
除以它,最后保存npz文件。问题是在计算mag的步骤中出现错误。在具有12 GB内存的计算机上使用np.sqrt(np.square(...
。我该如何运作?