使用正在处理。池for循环内的for函数

2024-09-30 00:40:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个包含两个参数的函数:

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))。你知道吗


Tags: 函数for参数defnprangeinfilepoints

热门问题