[Numpy-discussion] Please help - pointer to slice

Fernando Perez fperez at colorado.edu
Fri Mar 7 18:01:04 EST 2003

Sebastian Haase wrote:
> Thanks, SO MUCH ...
> I almost went crazy yesterday - and was really desperate by the time I wrote
> that email.
> Somehow I newer needed that offset field until now.  So: when I do the
> NA_InputArray call  I get a "proper" C-array
> just that it does NOT necessarily start at  NAimg->data
> but rather at
> NAimg->data + NAimg->byteoffset

Well, in case you (or others) find it useful, I'm including here a little 
library I wrote for accessing general Numeric 2-d arrays (contiguous or not) 
in an easy manner.

Here's a snippet of a simple (included) example of a function to print an 
integer array:

static PyObject *idisp(PyObject *self, PyObject *args)
     PyArrayObject *array;
     int **arr;  // for the data area
     int i,j,cs;

     if (!PyArg_ParseTuple(args, "O!",&PyArray_Type,&array ) )
	return NULL;

     arr = imatrix_data(array,&cs);
     for (i=0;i<array->dimensions[0];++i) {
       for (j=0;j<cs*array->dimensions[1];j+=cs)
	printf("%5d ",arr[i][j]);

     return Py_None;

You get the **arr pointer and you can then manipulate it as a[i][j] 
conveniently.  The supplied example file may be enough for many to write their 
Numpy C extensions without much trouble.

> Again: thanks so much.
> BTW: Is there general interest in my SWIG typemaps. (SWIG is maybe the
> easiest way to wrap C/C++ functions (and classes)
> into Python (and/or Perl, Java, Ruby,...) ?  I think especially for
> numerical stuff, that "link" in of interest.

I'd love to see them.  So far I've either used high-level stuff like 
weave.inline() or just written the extensions by hand (as in the code I'm 
supplying here).  I'd like to see this, especially if there is an easy way to 
handle contiguity issues with it.


-------------- next part --------------
A non-text attachment was scrubbed...
Name: libnumpy-access.tgz
Type: application/x-gzip
Size: 4516 bytes
Desc: not available
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20030307/9276fe1e/attachment.bin>

More information about the NumPy-Discussion mailing list