我有一些非常大的矩阵(比如说百万行的顺序),我无法保存在内存中,我需要在下降时间(不到一分钟......)访问这个矩阵的子样本。我开始结合 numpy 和 pandas 研究 hdf5 和 blaze:
但我发现它有点复杂,我不确定它是否是最好的解决方案。
还有其他解决方案吗?
谢谢
编辑
这里有一些关于我正在处理的数据类型的更多规范。
- 矩阵通常是稀疏的(< 10% 或 < 25% 的非零单元格)
- 矩阵是对称的
我需要做的是:
- 只读访问
- 提取矩形子矩阵(主要沿对角线,但也在外部)
我有一些非常大的矩阵(比如说百万行的顺序),我无法保存在内存中,我需要在下降时间(不到一分钟......)访问这个矩阵的子样本。我开始结合 numpy 和 pandas 研究 hdf5 和 blaze:
但我发现它有点复杂,我不确定它是否是最好的解决方案。
还有其他解决方案吗?
谢谢
编辑
这里有一些关于我正在处理的数据类型的更多规范。
我需要做的是:
你试过 PyTables 吗?它对于非常大的矩阵非常有用。看看这个 SO 帖子。
您的问题在上下文中有所欠缺;但是对于您描述的这些相对密集的矩阵,hdf5 压缩块存储可能与稀疏存储格式一样有效。在内存中,如果可以的话,您总是可以将您的视图转换为稀疏矩阵。这似乎是一个有效而简单的解决方案;据我所知,没有可以轻松从磁盘部分读取的稀疏矩阵格式。