如何使用joblib Python返回矩阵?

如何使用joblib Python返回矩阵?,python,parallel-processing,joblib,Python,Parallel Processing,Joblib,我有一个返回列表的函数。我正在使用joblib进行并行处理 from joblib import Parallel, delayed def myFunc(c, K, N): # something return myList inputs = range(500) if __name__ == '__main__': val = Parallel(n_jobs=20)(delayed(myFunc)(c, K, N) for c in inputs) 我想在从1到50

我有一个返回列表的函数。我正在使用joblib进行并行处理

from joblib import Parallel, delayed
def myFunc(c, K, N):
    # something
    return myList
inputs = range(500)
if __name__ == '__main__':
    val = Parallel(n_jobs=20)(delayed(myFunc)(c, K, N) for c in inputs)
我想在从1到500的每次迭代中存储所有重新运行的列表
val
,然后使用它们

如果没有平行,我会这样做:

def myFunc(c, K, N):
    # something
    return myList
inputs = range(500)
lists = []
for c in inputs:
    val = myFunc(c, K, N)
    lists.append(val)
# Now I have all the lists

我可以用parallel做这个吗?

事实上,
joblib.parallel
为你做这个工作

from __future__ import print_function
from joblib import Parallel, delayed
import random


def my_func(c, K, N):
    my_list = [random.randrange(3) for _ in range(K*N)]
    return my_list


if __name__ == '__main__':
    inputs = range(2)
    K, N = 3, 3
    val = Parallel(n_jobs=2)(delayed(my_func)(c, K, N) for c in inputs)
    print(val)
这会打印出来

[[0, 1, 1, 0, 1, 2, 2, 1, 1], [2, 1, 2, 0, 1, 1, 2, 1, 0]]