PyArray_SimpleNewFromData(, PyArray_FLOAT, ) can't get float c array in c extension?
Dear All, I used PyArray_SimpleNewFromData to transfer a float c array data into numpy.ndarray. But it got the wrong array values. Any suggestion? Thanks in advance! ---------------------------hello.c------------- PyObject * testCreatArray() { float fArray[5] = {0,1,2,3,4}; intp m = 5; PyObject * c = PyArray_SimpleNewFromData(1,&m,PyArray_FLOAT,fArray); return c; } --------------------------result--------------------
import hello import numpy list1 = range(5); alist = hello.testCreatArray() alist array([ 0.00000000e+00, -2.65695271e-05, 4.64483736e-34, 4.34402524e-44, -8.06840762e-06], dtype=float32)
-- Qinfeng(Javen) Shi Research School of Information Sciences and Engineering Australian National University Locked Bag 8001 Canberra ACT 2601
Qinfeng(Javen) Shi writes:
Dear All,
I used PyArray_SimpleNewFromData to transfer a float c array data into numpy.ndarray. But it got the wrong array values. Any suggestion? Thanks in advance!
---------------------------hello.c------------- PyObject * testCreatArray() { float fArray[5] = {0,1,2,3,4}; intp m = 5; PyObject * c = PyArray_SimpleNewFromData(1,&m,PyArray_FLOAT,fArray);
You want PyArrayObject* c here, then cast it return (PyObject*)c;
}
participants (2)
-
Philip Austin -
Qinfeng(Javen) Shi