首页 > 解决方案 > 处理大熊猫数据框

问题描述

更新的问题:

我有一个稀疏的 120000x14000 矩阵。然后我想做一些矩阵代数:

c = np.sum(indM, axis=1).T
w = np.diag(1 / np.array(c)[0]) # Fails with memory error
w = sparse.eye(len(indM), dtype=np.float)/np.array(c)[0] # Fails with memory error
w = np.nan_to_num(w)
u = w @ indM # Fails with 'Object types not supported'
u_avg = np.array(np.sum(u, axis=0) / np.sum(indM, axis=0))[0]

所以问题是,在创建对角线中包含非整数的对角线矩阵时,上述方法首先会因内存错误而失败。如果我设法处理,内核不知何故不将“对象”识别为支持的类型,这意味着我不能做稀疏矩阵,我想?

你建议我做什么?

标签: pythonpandasparallel-processingsparse-matrixmatrix-multiplication

解决方案


尝试使用 numpy 的总和。以我的经验,在性能方面,它往往会把其他东西从水中吹出来。

import numpy as np
c = np.sum(indM,axis=1)

推荐阅读