[Numpy-discussion] how add new attribute to a numpy array object ?
haase at msg.ucsf.edu
Mon Jul 24 15:28:13 CDT 2006
On Monday 24 July 2006 12:23, Travis Oliphant wrote:
> Sebastian Haase wrote:
> > Hi,
> > I have a (medical) image file.
> > I wrote a nice interface based on memmap using numarray.
> > The class design I used was essentially to return a numarray array
> > object with a new "custom" attribute giving access to special
> > information about the base file.
> > Now with numpy I noticed that a numpy object does not allow adding new
> > attributes !! (How is this ? Why ?)
> > Travis already suggested (replying to one of my last postings) to create
> > a new sub class of numpy.ndarray.
> > But how do I initialize an object of my new class to be "basically
> > identically to" an existing ndarray object ?
> > Normally I could do
> > class B(N.ndarray):
> > pass
> > a=N.arange(10)
> > a.__class__ = B
> > BUT I get this error:
> > #>>> a.__class__ = B
> > Traceback (most recent call last):
> > File "<input>", line 1, in ?
> > TypeError: __class__ assignment: only for heap types
> > What is a "heap type" ? Why ? How can I do what I want ?
> A heap type is one created in Python (i.e. not builtin with C).
> You should be able to do
> a = a.view(B)
Thanks - (I'm just replying because I assume your helpful answer was
mistakenly sent to me only and did not make it to the list)
More information about the Numpy-discussion