我有一个形状很大的矩阵(80000,4),其中包含很多数据,其中大部分是我不需要的。
我的过程的一部分涉及计算成对距离矩阵,并且该过程的行数为O(n ^ 2),因此我可以通过下采样来大大减少处理时间
我尝试使用numpy.linspace方法,如下所示:
downsample_factor = np.linspace(0, large_matrix.shape[0]-1, 20000, dtype=int)
large_matrix = large_matrix[downsample_factor, :]
在此示例中,large_matrix
的形状为(80000,4),我将其下采样到大约(20000,4)
此代码成功减小了large_matrix
的大小,但实际上并未释放内存。
是否还有另一种方法可以通过对大型阵列进行下采样来释放RAM?
编辑:
程序在RAM不足时会收到Killed
条消息。我注意到即使在降低采样率之后,大型数组仍会收到Killed
条消息,而从小处开始的数组并不会被杀死。