我希望通過多處理從以下腳本填充data1數組。現在,腳本運行正常,但數組未被填充。我嘗試了執行this,但由於使用了兩個迭代器,我無法使其工作。幫助讚賞;謝謝!順便說一下,我在最新的MacOS上使用了jupyter筆記本。用多處理填充3D陣列
import numpy as np
import multiprocessing as mp
from itertools import product
#Generate random data:
data = np.random.randn(12,20,20)
#Create empty array to store the result
data1 = np.zeros((data.shape), dtype=np.float)
#Define the function
def fn(parameters):
i = parameters[0]
j = parameters[1]
data1[:,i,j] = data[:,i,j]
#Generate processes equal to the number of cores
pool = mp.Pool(processes=4)
# Generate values for each parameter: i.e. i and j
i = range(data.shape[1])
j = range(data.shape[2])
#generate a list of all combinations of the parameters
paramlist = list(product(i,j))
#call the function and multiprocessing
np.array(pool.map(fn,paramlist))
pool.close()
代碼中的''product''函數是什麼?你遇到的確切問題是什麼? – mommermi
@mommermi'產品'來自'itertools'。問題是data1數組在調用函數後仍未填充。對原始帖子進行了編輯以澄清此問題。謝謝! – hrishi