Schnellste Möglichkeit, arithmetische Operationen in IronPython auf System.Array anzuwenden

8

Ich möchte zwei große System.Array s in IronPython elementar hinzufügen (arithmetics) und das Ergebnis im ersten Array speichern:

%Vor%

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

Bearbeiten:

  • 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 Zugriff auf Daten in einer Simulationssoftware bietet. 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.
c_k 28.01.2015, 14:23
quelle

1 Antwort

0

Ist es möglich, die für IronPython entwickelte numpy Bibliothek zu benutzen?

Ссылка

Es scheint unterstützt zu werden, und soweit ich weiß, ist es so nah, dass Sie mit Arrays und dergleichen in Python zu C-Style-Pointer-Funktionalität gelangen können.

Erstellen Sie ein Array:

%Vor%

Multiplizieren Sie alle Elemente mit 3.0:

%Vor%     
beiller 23.02.2015 21:06
quelle