[Numpy-discussion] Extending C with Python

Jialin Liu jalnliu at lbl.gov
Wed Jan 31 01:57:12 EST 2018


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 <robert.kern at gmail.com> wrote:

> On Wed, Jan 31, 2018 at 3:25 PM, Jialin Liu <jalnliu at lbl.gov> 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 [2];
>>> dims[0] = 10;
>>> dims[1] = 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[0],dims[1]))
>>
>>
>>
>> But it only prints the first number correctly, i.e., dims[0]. The second
>> number is always 0.
>>
>
> The correct typecode would be NPY_INTP.
>
> --
> Robert Kern
>
> _______________________________________________
> NumPy-Discussion mailing list
> NumPy-Discussion at python.org
> https://mail.python.org/mailman/listinfo/numpy-discussion
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20180130/08ff5c14/attachment-0001.html>


More information about the NumPy-Discussion mailing list