Effiziente Mathematikoperationen für kleine Arrays in Python mit Cython

9

Ich benutze nypexpr für schnelle Mathematik auf großen Arrays, aber wenn die Größe des Arrays kleiner als der CPU-Cache ist, ist das Schreiben meines Codes in Cython mit einfachen Array-Mathe viel schneller, besonders wenn die Funktion mehrere Male aufgerufen wird.

Das Problem ist, wie arbeiten Sie mit Arrays in Cython oder expliziter: Gibt es eine direkte Schnittstelle zu Pythons array.array in Cython? Was ich gerne machen würde, ist so etwas (einfaches Beispiel)

%Vor%

Ich habe zuerst versucht Cython numpy wrapper zu benutzen und habe mit den ndarrays gearbeitet, aber es scheint, dass das Erstellen sehr kostenintensiv für kleine 1D-Arrays ist, verglichen mit dem Erstellen eines C-Arrays mit malloc (aber die Speicherbehandlung wird zum Schmerz).

Danke!

    
chronos 19.03.2011, 01:30
quelle

1 Antwort

4

Sie können Ihre eigenen einfachen mit grundlegenden Funktionen und Kontrollen rollen Hier ist ein Modell zu starten:

%Vor%

kann als

verwendet werden %Vor%     
fabrizioM 30.03.2011 17:37
quelle