-1
我有一個任務要處理大量的數據行(在pandas
DataFrame
),但每個計算都是獨立的,因此我想將其並行化。在一個numpy數組中同時寫入
所以我有一個函數連續服用,並輸出一個對象(輸出中實際上是包含字符串和一組陣列)。
def compute_row(index, row, output):
output[index] = some_function(row)
然後我嘗試並行使用它。
output = np.empty(data_length, dtype=object)
num_cores = multiprocessing.cpu_count()
Parallel(n_jobs=num_cores)(delayed(compute_row)(i, row, outputx) for i, row in db.iterrows())
的問題是,我回來的None
數組,即使我通過1
例如更換some_function
。
由於索引是唯一的,所以不應該有任何併發的內存訪問問題。我在這裏錯過了什麼?我應該使用另一個數據結構嗎?
提前致謝!
輸出是'None'數組,因爲'compute_row'方法應該返回一些東西。你爲什麼不'只返回some_function(row)'? –