2017-04-11 2 views
-1

Ich habe eine Aufgabe auf eine Menge von Daten zu tun (in einer pandasDataFrame), 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!

+0

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? –

Antwort

0

Ok, Ich habe einen anderen Weg gefunden, mit einemObjekt.

Verwandte Themen