[Numpy-discussion] Efficiently converting a numarray object to Numeric
Todd Miller
jmiller at stsci.edu
Wed Feb 9 08:28:33 EST 2005
On Wed, 2005-02-09 at 16:37 +0100, Francesc Altet wrote:
> Hi,
>
> I'm wondering if there is a more efficient way to convert a numarray
> object into a Numeric one than:
>
> >>> import Numeric
> >>> import numarray
> >>> from time import time
> >>> a = numarray.arange(100*1000)
> >>> t1=time();b=Numeric.array(a);time()-t1
> 0.43448090553283691
>
> Any suggestions?
Yes!
import Numeric
import numarray
from time import time
a = numarray.arange(100*1000)
t1=time();b=Numeric.array(a);
print time()-t1
t1 = time(); c=Numeric.fromstring(a._data, typecode='i')
print time()-t1
print b[-10:]
print c[-10:]
I get:
1.58109998703
0.00659704208374
[99990 99991 99992 99993 99994 99995 99996 99997 99998 99999]
[99990 99991 99992 99993 99994 99995 99996 99997 99998 99999]
Note that in CVS, fromstring(a, typecode='i') now also works because
numarray now supplies the buffer protocol as well as consuming buffers.
Regards,
Todd
More information about the NumPy-Discussion
mailing list