我有一个包含几个大的列表numpy arrays
如何保留一个numpy数组的片并从内存中清除其余部分?
我想只保留这些数组中的每一个片,并清除我的系统内存。我曾尝试使用关键字del
和None
,但这些似乎没有任何效果(我使用Fedora系统监视器来监视RAM使用情况)。
问题是我想使用numpy.save()
保存我的切片,但内存不足,因此我的问题。
比如我有:
my_list = [arr0, arr1, arr2]
而且我想直到结束:
my_list = [arr0[10:100], arr1[10:100], arr2[10:100]]
所以我试图做
arr_tmp = np.copy(arr0[10:100])
my_list[0] = arr_tmp
arr0 = None
和
arr_tmp = np.copy(arr0[10:100])
my_list[0] = arr_tmp
del arr0
但这些似乎没有工作。
编辑:当我使用numpy.save()
函数时,内存不足,而不是在切片我的数组时。我想在拨打numpy.save()
之前释放一些内存,这样它不会被系统杀死。
形状相同的那些阵列? – Divakar
是的,它们具有相同的形状 – jmatthieu
你能初始化一个形状为“(N_arrs,91)”的输出数组吗?并且从arr0,arr1等迭代地填充它。我假设你正在耗尽内存来创建'my_list':'my_list = [arr0 [10:100],arr1 [10:100],arr2 [10:100]]''。 – Divakar