Метод Pool.map(func, iterable)
ожидает итерацию, которая может быть tuple
или list
. Вы не можете передать цикл for
как то, что вы пробовали (for i in range(2)
), но вместо этого вы можете передать список чисел из диапазона :
pool.map(multi_flagger, list(range(2))) # [0, 1]
Я не уверен насчет остальной части вашего кода, но при использовании Pool
вы устанавливаете количество рабочих процессов при создании экземпляра Pool
(как объяснено в Использование пула рабочие пример), а затем вызовите map
, чтобы передать функцию для выполнения и входные данные функции:
def multi_flagger(antenna_no):
recv=data.corr_products[antenna_no][0]
flagger=data.flags[:, :, antenna_no]
mat_flag = np.matrix(flagger)
np.save('Flagged_data_'+str(recv)+'_.npy', mat_flag)
with Pool(processes=3) as pool: # set the number of worker processes
pool.map(multi_flagger, list(range(2))) # pass a list of antenna_no
pool.close()