anzuwenden I (arithmetics) zwei große System.Array
s elementweise in Ironpython und das Ergebnis in der ersten Array wie folgt hinzufügen möchten:schnellste Weg arithmetische Operationen System.Array in Ironpython
for i in range(0:ArrA.Count) :
arrA.SetValue(i, arrA.GetValue(i) + arrB.GetValue(i));
Dies scheint jedoch sehr langsam zu sein. Mit einem C-Hintergrund möchte ich Zeiger oder Iteratoren verwenden. Ich weiß jedoch nicht, wie ich das IronPython-Idiom schnell anwenden soll. Ich kann keine Python-Listen verwenden, da meine Objekte ausschließlich vom Typ System.Array sind. Der Typ ist 3d float.
Was ist der schnellste/schnellste Weg, um diese Berechnung zu berechnen?
Edit:
- Die Anzahl der Elemente ist ca. 256^3.
- 3d float bedeutet, dass auf das Array wie folgt zugegriffen werden kann: array.GetValue (indexX, indexY, indexZ). Ich bin mir nicht sicher, wie der jeweilige Speicher in IronPythons System.Array organisiert ist.
- Hintergrund: Ich habe eine Schnittstelle zu einer IronPython-API geschrieben, die den Zugriff auf Daten in einer Simulationssoftware ermöglicht. Ich erhalte 3D-Skalardaten und akkumuliere sie in einem temporären Array in meinem IronPython-Skript. Die Akkumulation wird 10.000 mal durchgeführt und sollte schnell sein, damit die Simulation nicht ewig dauert.
Können Sie mehr Kontext zu machen? 3d schwimmen? Eine Struktur? Was ist die eigentliche Operation? 3 fügt hinzu? Wie viele Elemente sind groß? Wie oft tritt der Vorgang auf? –
Zusätzlicher Kontext bereitgestellt. –