【发布时间】:2026-01-21 08:10:02
【问题描述】:
我正在尝试在 python 中实现具有 200k+ 数据点的 1000 维数据的算法。我想使用 numpy、scipy、sklearn、networkx 和其他有用的库。我想执行诸如所有点之间的成对距离之类的操作,并对所有点进行聚类。我已经实现了以合理复杂性执行我想要的工作的算法,但是当我尝试将它们扩展到我的所有数据时,我的 RAM 用完了。当然,我愿意,为 200k+ 数据创建成对距离矩阵会占用大量内存。
问题来了:我真的很想在内存不足的蹩脚计算机上执行此操作。
有没有可行的方法让我不受低 RAM 限制的情况下完成这项工作?这将花费更长的时间真的不是问题,只要时间要求不至无穷大!
我希望能够让我的算法运行起来,然后在一五个小时后返回,而不是因为内存不足而卡住!我想在 python 中实现它,并且能够使用 numpy、scipy、sklearn 和 networkx 库。我希望能够计算到我所有点的成对距离等
这可行吗?我该怎么做,我可以开始阅读什么?
【问题讨论】:
-
我希望能够在 python 中执行 200.000 x 1000 矩阵中所有点之间的成对距离,而无需足够的内存来将整个距离矩阵保存在内存中。我正在寻找有关如何做到这一点的信息:) 所以更具体的答案然后模糊的“研究计算机科学的两个完整子领域”会有所帮助!
-
从下面的第一个相关问题用户@cronos 建议到use
h5py,我相信它也可以用于您的问题。 1-Is it possible to np.concatenate memory-mapped files? 2-Concatenate Numpy arrays without copying
标签: python arrays numpy scipy bigdata