Verwenden von numpy in Cython: Definieren von ndarray datatype / ndims

8

Ich versuche, etwas Cython-Code zu schreiben, um Berechnungen mit numpigen Arrays durchzuführen. Cython scheint das [] nicht zu mögen, das in allen Beispielen benutzt wurde, um den Datentyp und die Anzahl der Dimensionen zu definieren.

Zum Beispiel habe ich eine Datei test.pyx:

%Vor%

Ich kompiliere das mit einem setup.py (siehe Ende des Posts), das ich mit "python setup.py build_ext --inplace"

ausführe

Ich bekomme folgende Ausgabe:

%Vor%

Wenn ich dagegen den Teil "[np.float64_t, ndim = 2]" entferne, funktioniert es gut.

Hat jemand Ideen?

Was meine Systemeinrichtung angeht: Betriebssystem: Windows XP

vollständige, vollständige Pythonxy-Installation, Version 2.6.5.1 (zuletzt an dieser Stelle)

pythonxy kommt angeblich mit Cython, aber ich habe die Cython-Version 0.12.1 für Python 2.6 von dieser Site installiert: Ссылка

Ich vermute, dass mir irgendwie ein Pfad oder etwas fehlt: Ich löste einige Probleme, indem ich das Verzeichnis numpy Header-Datei explizit dem von mingw verwendeten Include-Pfad hinzufügte (siehe die Datei setup.py)

Hier ist die Datei setup.py, die ich erwähnt habe:

%Vor%     
stochastic 31.07.2010, 18:19
quelle

2 Antworten

3

Geben Sie die Typinformation in die Deklaration der Funktion ein, wie in:

%Vor%     
Fabian Pedregosa 12.12.2010, 16:09
quelle
0

Ich denke, Sie können es nicht direkt machen: Sie müssen die Form überprüfen und die Funktion

eingeben %Vor%

und nur cdeftype np.ndarray mymatrix in der Kopfzeile

ABER Sie verlieren die Eingabe von Matrixwerten Sie müssen also jeden Wert, den Sie verarbeiten, Float64_t zuweisen: aber was sollte die Effizienz sein?

Louis

    
Louis 26.11.2010 09:28
quelle

Tags und Links