Amazing! It works! Thank you Robert.
I've been stuck with this many days.
Best, Jialin LBNL/NERSC
On Tue, Jan 30, 2018 at 10:52 PM, Robert Kern firstname.lastname@example.org wrote:
On Wed, Jan 31, 2018 at 3:25 PM, Jialin Liu email@example.com wrote:
Hello, I'm extending C with python (which is opposite way of what people usually do, extending python with C), I'm currently stuck in passing a C array to python layer, could anyone plz advise?
I have a C buffer in my C code and want to pass it to a python function. In the C code, I have:
npy_intp dims ;
dims = 10; dims = 20; import_array(); npy_intp m=2; PyObject * py_dims = PyArray_SimpleNewFromData(1, &m, NPY_INT16 ,(void *)dims ); // I also tried NPY_INT PyObject_CallMethod(pInstance, method_name, "O", py_dims);
In the Python code, I want to just print that array:
def f(self, dims):
print ("np array:%d,%d"%(dims,dims))
But it only prints the first number correctly, i.e., dims. The second number is always 0.
The correct typecode would be NPY_INTP.
-- Robert Kern
NumPy-Discussion mailing list NumPy-Discussion@python.org https://mail.python.org/mailman/listinfo/numpy-discussion