[Numpy-discussion] how add new attribute to a numpy array object ?
Eric Firing
efiring at hawaii.edu
Sun Jul 23 03:11:59 EDT 2006
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
Isn't this what you need to do instead?
In [1]:import numpy as N
In [2]:class B(N.ndarray):
...: pass
...:
In [3]:a = B(N.arange(10))
In [4]:a.__class__
Out[4]:<class '__main__.B'>
In [5]:a.stuff = 'stuff'
I don't think it makes sense to try to change the __class__ attribute by
assignment.
Eric
More information about the NumPy-Discussion
mailing list