我有一个要求,我需要在梯子的方式循环。看起来像这样
for i in [i1,i2,.....]:
for j in [j1,j2,.....]:
for k in [k1,k2,.....]:
for l in [l1,l2,.....]:
for m in [m1,m2,.....]:
loop_variables = some computation on i,j,k,l,m
np.save('matrix.npy',loop_variables)
这个密码让我的笔记本电脑冻结了。因此,我以以下方式使用了itertools
、del
、gc
import itertools
import gc
i = [i1,i2,.....]
j = [j1,j2,.....]
k = [k1,k2,.....]
l = [l1,l2,.....]
m = [m1,m2,.....]
lst = [i,j,k,l,m]
f_lst = itertools.product(*lst)
del i,j,k,l,m, lst
for i,j,k,l,m in f_lst:
loop_variables = some computation on i,j,k,l,m
np.save('matrix.npy',loop_variables)
del loop_variables, i,j,k,l,m
gc.collect()
但问题依然存在。我有以下问题
每次打开文件都要付出代价
通常,在内环中使用的CPU数量与减少CPU使用所消耗的RAM数量之间存在权衡。i、 e.您是否收集结果并稍后写出(收集时可能会耗尽内存)
下面是一个jupyter笔记本的结果,它是您示例的一个精简版本。使用“with”可以大大加快速度
编辑:numpy文档指示保存附件,但是“a.npy”和“b.npy”的大小不同,因此。。。我不相信a.npy
相关问题 更多 >
编程相关推荐