Georg Holzmann wrote:
> Hallo!
>
> I found now a way to get the data:
>
>   
>> Therefore I do the following (2D example):
>>
>>    obj = PyArray_FromDimsAndData(2, dim0, PyArray_DOUBLE, (char*)data);
>>    PyArrayObject *tmp = (PyArrayObject*)obj;
>>    tmp->flags = NPY_FARRAY;
>>     
>
> if in that example I also change the strides:
>
>    int s = tmp->strides[1];
>    tmp->strides[0] = s;
>    tmp->strides[1] = s * dim0[0];
>
> Then I get in python the fortran-style array in right order.
>
> However, I don't know if this is the usual way or if it has a 
> performance overhead ...
>
>   
This depends on what you are trying to do, but generally, I find that if 
you can afford it memory-wise, it is much faster to just get a C 
contiguous array if you treat your C array element per element. If you 
don't access element per element, then it can become much more 
difficult, of course (specially if you have to use several times the 
same parts of the memory).

cheers,

David
_______________________________________________
Numpy-discussion mailing list
Numpy-discussion@scipy.org
http://projects.scipy.org/mailman/listinfo/numpy-discussion

Reply via email to