[Numpy-discussion] inheriting from recarray with nested dtypes
Geoffrey Irving
irving at naml.us
Thu Mar 28 14:16:48 EDT 2013
I have the following two structured dtypes:
rotation (quaternion) = dtype([('s','f8'),('v','3f8')])
frame = dtype([('t','3f8'),('r',rotation)])
For various reasons, I usually store rotation arrays in a class
Rotations deriving from ndarray, and frames in a class Frames deriving
from ndarray.
Currently I am defining .s, .v, .t, and .r properties manually, and
I'd like to switch to inheriting from recarray. However, the .r
property should return an array of class Rotations. I.e.,
f = Frames(...) # f.dtype = frame
r = f.r # r.dtype = rotation, type(r) = Rotations
Is there a clean way to tell recarray to adjust the type returned? It
already has a bit of intelligence there, since it returns ndarray vs.
recarray based on whether the returned dtype has fields.
The full code is here in case anyone is curious:
https://github.com/otherlab/core/blob/master/vector/Frame.py
https://github.com/otherlab/core/blob/master/vector/Rotation.py
Thanks,
Geoffrey
More information about the NumPy-Discussion
mailing list