python - 处理大熊猫数据框
问题描述
更新的问题:
我有一个稀疏的 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]
所以问题是,在创建对角线中包含非整数的对角线矩阵时,上述方法首先会因内存错误而失败。如果我设法处理,内核不知何故不将“对象”识别为支持的类型,这意味着我不能做稀疏矩阵,我想?
你建议我做什么?
解决方案
尝试使用 numpy 的总和。以我的经验,在性能方面,它往往会把其他东西从水中吹出来。
import numpy as np
c = np.sum(indM,axis=1)
推荐阅读
- intellij-idea - 在 toString 生成中使用 getter
- javascript - 非法参数:未定义,字符串
- c - 通过引用传递函数来更改数组的元素
- postgresql - 为什么 postgres 在许多 alter table 命令中采用访问排他锁?
- algorithm - LZ4、Snappy、Zstandard 和 Deflate 等压缩算法的时间和空间复杂性
- apache - 为什么 RewriteRule 在重定向时更改端口?
- spring-boot - 如何使用 spring rest 模板将 multipartfile 从 springboot 发布到 jersey?
- ios - 有没有办法使用全局静态字典可以访问objective-c ios中的所有视图控制器?
- scala - 具有默认类型参数的类型类
- javascript - 浏览器窗口调整大小时如何自动调整 iframe 内容大小?