[Numpy-discussion] Numarray feature request: supporting the buffer interface
Todd Miller
jmiller at stsci.edu
Fri Jan 7 06:45:04 EST 2005
On Fri, 2005-01-07 at 09:19, Chris Perkins wrote:
> On Fri, 7 Jan 2005 10:01:37 +0530, Prabhu Ramachandran
> <prabhu_r at users.sf.net> wrote:
> >
> > I noticed that numarray does not support this interface. My feature
> > request is that numarray arrays also support this buffer interface (if
> > possible).
> >
>
> I second this request.
>
> Note that numarray arrays have a member called "_data" that does
> support the buffer interface. I have been using code like this for a
> while (pseudocode):
>
> def asBuffer(a):
> if a is a numarray array:
> return a._data
> elif a is a Numeric array:
> return a
> else: ... do something else
>
> But it would be nice if the numarray array supported the buffer
> interface directly. I have no idea how hard or easy this would be to
> do.
Without looking at code, my guess is that the C source level
compatibility of numarray with Numeric will enable a "direct graft" of
the buffer protocol code from Numeric to numarray. I think it will be
easy... but...
numarray has a concept of "misbehaved arrays", i.e. arrays in the
binary format of another platform and therefore byte-swapped, or arrays
spread across records and therefore possibly noncontiguous or
misaligned. I think these buffers are likely unusable so providing
access to them is a mistake. Misbehaved arrays probably don't arise in
the work of most users, but they are a possibility that has to be
accounted for.
For cases of misbehaved arrays, I think raising a ValueError exception
is necessary. How does that sound?
Regards,
Todd
More information about the NumPy-Discussion
mailing list