[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