首页 > 解决方案 > 使用python多处理通过迭代返回几个变量的平均值

问题描述

我想在迭代多次后计算几个变量的平均值。我的函数创建随机数据,并从中计算变量(使用其他函数)。

到目前为止,我有:

stuff1_list = []
stuff2_list = []
stuff3_list = []
for i in range(100):
    data = create_data(arg1, arg2)
    stuff1_list.append(calc_stuff1(data))
    stuff2_list.append(calc_stuff2(data))
    stuff3_list.append(calc_stuff3(data))
mean1 = np.mean(stuff1_list)
mean2 = np.mean(stuff2_list)
mean3 = np.mean(stuff3_list)

我一直试图弄清楚如何使用多处理来做到这一点,但我对进程、队列、池等感到困惑。如何通过并行处理完成这项工作?

标签: pythonmultiprocessing

解决方案


我的方法是:

def do_stuff():
    stuff_list = []
    for i in range(100):
        data = create_data(arg1, arg2)
        stuff_list.append(calc_stuff(data))
    print(np.mean(stuff_list))

for i in range(3):
    p = multiprocessing.Process(target=do_stuff, args=())
    p.start()

推荐阅读