[SciPy-User] Problem with passing a 2D Numpy array in the C code by weave.inline
Steven Nien
steven.nien at gmail.com
Thu Dec 3 07:03:29 EST 2009
Hello,
Thanks, but it didn't work (with error message).
Below is my code:
from scipy.weave import inline
import numpy
arr = numpy.zeros((2,3), dtype='double')
code = \
"""
arr(1,1) = 1;
"""
inline(code,['arr'], verbose = 1, compiler = 'gcc')
print arr
But what I actually want is something like this:
from scipy.weave import inline
import numpy
arr = numpy.zeros((2,3), dtype='double')
code = \
"""
arr[1][1] = 1;
"""
inline(code,['arr'], verbose = 1, compiler = 'gcc')
print arr
Maybe need to use the type_factories argument in the inline function or
something like this?
Any idea?
Regards,
Steven Nien
2009/12/3 Jose Gomez-Dans <jgomezdans at gmail.com>
> Hi,
>
> 2009/12/3 Steven Nien <steven.nien at gmail.com>
>
> I'm trying to pass a 2 dimensional numpy array into the 'weave.inline' and
>> doing some computation in C.
>> But it seems that the 'weave.inline' will convert a 2d array in python
>> into a 1d array in C.
>>
>> So if I have a MxN array 'arr'
>> I need to access arr[2][3] in C by the following code:
>>
>
> I think weave inline compiles code into C++ and links against the blitz
> libraries, so that numpy arrays are blitz arrays. You can access the element
> in your example as arr(2,3). For internal consumption, I guess that the
> arrays are still chunks of memory.
>
> J
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.scipy.org/pipermail/scipy-user/attachments/20091203/04e7be91/attachment.html>
More information about the SciPy-User
mailing list