[SciPy-User] best way to convert a structured array to a float view (again)

Stéfan van der Walt stefan@sun.ac...
Sat Jun 5 03:24:40 CDT 2010


On 4 June 2010 21:16, Vincent Davis <vincent@vincentdavis.net> wrote:
> 2010/6/4 Stéfan van der Walt <stefan@sun.ac.za>:
>> On 4 June 2010 08:55, Skipper Seabold <jsseabold@gmail.com> wrote:
>>> Say I have the following arrays that I want to view as/cast to plain
>>> ndarrays with float dtype
>>>
>>> import numpy as np
>>> arr = np.array([(24,),(24,),(24,),(24,),(24,)], dtype=[("var1",int)])
>>>
>>> arr2 = np.array([(24,4.5),(24,4.5),(24,4.5),(24,4.5),(24,4.5)],
>>> dtype=[("var1",int),("var2",float)])
>
> How about this,
> arr2 = np.column_stack((arr[col] for col in arr.dtype.names))

That code is more complicated, and results in a 10x slow-down:

In [5]: timeit np.column_stack((arr[col] for col in arr.dtype.names))
100000 loops, best of 3: 13.4 us per loop

In [6]: timeit arr.view(int).astype(float)
100000 loops, best of 3: 2.01 us per loop

Regards
Stéfan


More information about the SciPy-User mailing list