python - 使用 Python 和 NumPy 的非常大的矩阵

标签 python matrix numpy

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/

相关文章:

matlab - 输出矩阵大小 n x m,当索引之和为偶数时为 1,否则为 0

matlab - 重新组合单个树中节点的路径

python - 将 pandas DataFrames : how do I apply scipy. stats.sem 分组给他们?

python - 如何防止动态库多次初始化

Python 正则表达式 : force greedy match using alternation

python - 如何根据数据框的列名比较两个数据框

python - 移动数据帧的列而不循环?

c++ - OpenCV 函数来计算类似于 MATLAB 产品的数组元素的乘积?

python - 用中位数替换 NaN 值?

python - 从 numpy 数组中获取最大矩形区域