[Numpy-discussion] ndarray subclassing bug?
Pierre GM
pgmdevlist@gmail....
Sun Aug 10 14:09:21 CDT 2008
On Sunday 10 August 2008 14:26:33 Christoph T. Weidemann wrote:
> Why whould tst.sort() show the correct base class and np.sort show
> NoneType as base class for tst?
> I'd appreciate any insights ...
Christoph,
I should take the time to read the question first before answering.
So, according to the numpy book, the .base attribute is "the object the array
is using for its data buffer, or None if it owns its own memory".
When you create a TestArray, the object points in fact to the subarr variable
you have defined in your __new__, so your TestArray doesn't own its memory,
and .base points to subarr.
When you call TestArray.sort, you're not doing anything at all: the .base
attribute still points to the subarr temporary array you have created, a
ndarray
When you call np.sort, you create a copy of your TestArray that ends up owning
its own memory: its .base becomes None.
I hope I got it right.
So no, you didn't do anything wrong. What behavior were you expecting ?
More information about the Numpy-discussion
mailing list