NumPy是一个非常有用的库,通过使用它,我发现它能够轻松处理非常大(10000 x 10000)的矩阵,但开始与更大的矩阵作斗争(尝试创建 50000 x 50000 的矩阵失败)。显然,这是因为需要大量内存。
有没有一种方法可以在 NumPy 中以某种方式(比如 100 万乘以 100 万)本地创建巨大的矩阵(没有几 TB 的 RAM)?
最佳答案
PyTables 和 NumPy 是必经之路。
PyTables 将以 HDF 格式将数据存储在磁盘上,并可选择压缩。我的数据集经常得到 10 倍的压缩,这在处理数千万或数亿行时非常方便。它也非常快;我 5 岁的笔记本电脑可以以 1,000,000 行/秒的速度处理类似 SQL 的 GROUP BY 聚合的数据。对于基于 Python 的解决方案来说还不错!
再次以 NumPy 重新数组的形式访问数据非常简单:
data = table[row_from:row_to]
HDF 库负责读取相关数据 block 并转换为 NumPy。
关于python - 使用 Python 和 NumPy 的非常大的矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1053928/