我已经写了一段代码,我正试图在我的8gb内存的本地机器上运行。
import numpy as np
tasks = ['A','B','C','D']
tasks_pass_prob = [0.7,0.1,0.5,0.3]
task_probs = tuple(zip(tasks,tasks_pass_prob))
N = 1000000
n = 1
results_dict = {}
for _ in range(N):
for t,p in task_probs:
res = np.random.binomial(n,p,N)
results_dict[t]=res
对于较小的 N
代码正在运行,但值较高 N
机器挂起来了。重构for循环以运行代码的更好方法是什么?
2条答案
按热度按时间4ktjp1zp1#
我想我可以通过简单地去掉第一个循环来达到同样的效果,就像这样。。。
qv7cva1a2#
实际上,你的代码没有挂起,但是你的进程太大了,需要很长时间才能运行。。。
这不是ram的问题。。。
你为什么用
for _ in range(N)
?我建议你这样写: