Ich muss eine generische Operation auf die Elemente von einigen np 2D-Arrays (A, B, C) implementieren. Im PseudocodeVermeiden verschachtelt mit numpy Arrays
for i in A.height:
for j in A.width:
A[i,j] = f(B[i,j],C[i,j])
wobei f() die Bits der beiden Variablen durch struct.pack Verketten(), struct.unpack()
x = struct.pack('2B', B[i, j], C[i, j])
y = struct.unpack('H', x)
Dieser Code eine wirklich lange dauert Zeit zur Ausführung (0,25 Sekunden für 640 * 480 Matrizen ... vielleicht ist das normal, aber ich könnte etwas schneller verwenden), also frage ich mich, ob jemand mir eine pythische Art vorschlagen könnte, das gleiche Ergebnis zu erreichen, das auch die Leistung verbessern könnte
Hängt davon ab, was 'f()' tut. Sie könnten versuchen, Threads oder Multiprocessing zu verwenden. – Harvey
Nicht wirklich sicher, wie Sie erwarten, dass jemand antwortet, ohne zu wissen, was 'f' tut, wie groß Ihre Daten sind oder was" wirklich lange Zeit für die Ausführung "bedeutet. – excaza
Können Sie 'f' ändern, um [Broadcasting] (http://scipy.github.io/old-wiki/pages/EricsBroadcastingDoc) zu nutzen? –