在下面的代碼一個具體的說法行事,我想multprocess sum_
針對包括在np.array([1,2,3])
的z
三個不同值:使pool.map內的函數,在其多個參數
from multiprocessing import Pool
from functools import partial
import numpy as np
def sum_(x, y, z):
return x**1+y**2+z**3
sum_partial = partial(sum_, x = 1, y = 2) # freeze x and y
a = np.array([1,2,3]) # three different values for z
p = Pool(4)
p.map(sum_partial, a)
p.map(sum_partial, a)
給出了以下錯誤:TypeError: sum_() got multiple values for keyword argument 'x'
,因爲對於Python,我將a
重新分配給我的函數的kwarg x
。我怎樣才能使np.array([1,2,3])
每個變量,以填補說法sum_
代替x
z
,這樣我可以得到以下結果:
[6, 13, 32]
分別是:
sum_partial(z=1), sum_partial(z=2), sum_partial(z=3)
? 我想繼續使用pool.map
。
順便說一句,有可能使用多處理與數組y
和z
數組最終得到len(y)*len(z)
值的列表?