Ich habe eine Aufgabe auf eine Menge von Daten zu tun (in einer pandas
DataFrame
), aber jede Berechnung ist unabhängig, also möchte ich es parallelisieren.Schreibe gleichzeitig in einem numply Array
Also habe ich eine Funktion, die eine Zeile nimmt und ein Objekt ausgibt (die Ausgabe ist eigentlich ein Array, das eine Zeichenkette und einen Satz enthält).
def compute_row(index, row, output):
output[index] = some_function(row)
Und dann versuche ich es parallel zu verwenden.
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())
Das Problem ist, dass ich eine Reihe von None
zurück, auch wenn ich some_function
durch 1
beispielsweise ersetzen.
Da die Indizes eindeutig sind, sollte kein Problem mit gleichzeitigem Speicherzugriff auftreten. Was fehlt mir hier? Sollte ich vielleicht eine andere Datenstruktur verwenden?
Vielen Dank im Voraus!
Die Ausgabe ist ein Array von 'None', weil die Methode' compute_row' etwas zurückgeben soll. Warum gibst du nicht einfach some_function (row) zurück? –