我正在尝试使用Python实现针对具有200k+数据点的1000维数据的算法。我想使用numpy、scipy、sklearn、networkx和其他有用的库。我想要执行一些操作,例如所有点之间的成对距离,并在所有点上进行聚类。我已经实现了可以按照我想要的方式执行工作的算法,并且复杂度合理,但是当我尝试将它们扩展到所有数据时,就会耗尽内存。当然,这是可以理解的,因为在200k+数据上创建成对距离矩阵需要大量内存。
问题来了:我真的很想在RAM较低的烂电脑上完成这项工作。
有没有可行的方法让我在没有低RAM限制的情况下工作?花费更长的时间并不是问题,只要时间要求不无穷大!
我希望能够让我的算法开始工作,然后在一个小时或五个小时后回来,而不会出现因为内存不足而卡住的情况!我想在Python中实现这一点,并能够使用numpy、scipy、sklearn和networkx库。我也希望能够计算所有点的成对距离等。
这可行吗?我该怎么做?我可以从哪些方面开始阅读资料?
h5py
,我相信它也可以用于您的问题。1-是否可能将内存映射文件np.concatenate? 2-连接Numpy数组而不复制 - Saullo G. P. Castro