[Numpy-discussion] fixed_pt some progress and a question
Neal Becker
ndbecker2 at gmail.com
Tue Sep 29 11:10:09 EDT 2009
josef.pktd at gmail.com wrote:
> On Tue, Sep 29, 2009 at 10:22 AM, Neal Becker <ndbecker2 at gmail.com> wrote:
>> This doesn't work either:
>>
>> def as_double (self):
>> import math
>> def _as_double_1 (x):
>> return math.ldexp (x, -self.frac_bits)
>> vecfunc = np.vectorize (_as_double_1, otypes=[np.float])
>> return vecfunc (self)
>>
>> In [49]: obj.as_double()
>> Out[49]: fixed_pt_array([ 0., 1., 2., 3., 4.])
>>
>> The values are correct, but I wanted a float array, not fixed_pt_array
>> for output.
>>
>> _______________________________________________
>> NumPy-Discussion mailing list
>> NumPy-Discussion at scipy.org
>> http://mail.scipy.org/mailman/listinfo/numpy-discussion
>>
>
> I don't understand much, but if you just want to convert to a regular
> float array, you can just create a new array with np.array in
> as_double, or not?
>
I could force an additional conversion using np.array (xxx, dtype=float).
Seems wasteful.
The bigger question I have is, if I've subclassed an array, how can I get at
the underlying array type? In this example, fixed_pt is really an 'int64'
array. But I can't find any way to get that. Any function such as 'view'
just silently does nothing. It always returns the fixed_pt_array class.
Consider the fixed_pt_array method as_base(). It should return the
underlying int array. How could I do this?
More information about the NumPy-Discussion
mailing list