我有一个包含两个参数的函数:
def vol(vor,p):
return some_value
我使用for循环调用函数:
infile = '/home/test.dat'
xx = np.genfromtxt(infile)
points = xx[:,0:3] # array with shape (4000,3)
galvor = Voronoi(points)
ngal = np.shape(xx)[0] # just an integer
galden = np.zeros((ngal,))
for i in range(ngal):
galden[i]= 1./vol(galvor,i)
由于这需要很多时间,我尝试通过以下方式使用多处理池:
if __name__ == '__main__':
pool = Pool(processes = 8) # adjust to number of cores
galden[i] = pool.map(vol, (galvor,range(ngal)))
我得到一个错误:
TypeError: vol() takes exactly 2 arguments (1 given)
但如您所见,我为函数提供了两个参数,即(galvor,range(ngal))
。
因为galvor
不是iterable,所以我不能使用zip(galvor,range(ngal))
。你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐