ich beschäftige mich seit kurzem mit der Erweiterung von Python durch C++ Module, da Python allein an einigen Stellen für meine Zwecke zu langsam ist. Insbesondere iteriere ich mit Hilfe von C++ sehr schnell über Numpy-Arrays, stoße jetzt allerdings auf Schwierigkeiten. Innerhalb der Iterationen in C++ benötige ich die Varianz eines Arrays und würde dafür gerne wieder numpy-Funktionen verwenden.
Code: Alles auswählen
#Python
def myfunc(meinnumpyarray):
N = 10000
a = 5000
for i in range(N):
var = meinnumpyarray[i:i+a].var()
# mehr Code mit Zugriffen auf meinnumpyarray[xyz] und var
return blablubb
//C++
static PyObject * py_myfunc(PyObject *self, PyObject *args) {
PyArrayObject *meinnumpyarray;
PyArg_ParseTuple(args, "O!", &PyArray_Type, &meinnumpyarray);
int N = 10000;
int a = 5000;
for (int i=0;i<N;i++) {
//derzeit: Umständliche und zu langsame Berechnung von var mittels eigenem C++-Code
//mehr Code mit Zugriffen auf meinnumpyarray und var, Zugriff hier in C++ über: * (double *) (meinnumpyarray->data + xyz*meinnumpyarray->strides[0])
return blablubb;
}
Viele Grüße und schonmal vielen Dank,
thesaint4cs