有没有一种方法可以通过对大型numpy数组进行下采样来减少RAM使用量?

时间:2019-05-21 00:16:36

标签: python numpy

我有一个形状很大的矩阵(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条消息,而从小处开始的数组并不会被杀死。

0 个答案:

没有答案