[Numpy-discussion] load from text files Pull Request Review

Christopher Barker Chris.Barker@noaa....
Wed Sep 14 17:30:11 CDT 2011


On 9/14/11 2:41 PM, Benjamin Root wrote:
> Are you sure the f2 code works?  a.resize() takes only a shape tuple.  As
> coded, you should get an exception.

wow, what an idiot!

I think I just timed how long it takes to raise that exception...

And when I fix that, I get a memory error.

When I fix that, I find that f3() wasn't doing the right thing. What an 
astonishing lack of attention on my part!

Here it is again, working, I hope!

In [107]: %timeit f1()
10 loops, best of 3: 50.7 ms per loop

In [108]: %timeit f2()
1000 loops, best of 3: 719 us per loop

In [109]: %timeit f3()
100 loops, best of 3: 19 ms per loop


So:
numpy.resize() is the slowest
numpy.empty+ numpy.append() is faster
numpy.ndarray.resize() is the fastest

Which matches my expectations, for once!

-Chris
The code:

#!/usr/bin/env python

"""
test_resize

A test of various numpy re-sizing options

"""

import numpy

def f1():
     """
     numpy.resize
     """

     extra = 100
     l = extra
     a = numpy.zeros((l,))
     for i in xrange(100):
         l += extra
         a = numpy.resize(a, (l,) )

     return a

def f2():
     """
     numpy.ndarray.resize
     """

     extra = 100
     l = extra
     a = numpy.zeros((l,))
     for i in xrange(100):
         l += extra
         a.resize( (l,) )

     return a

def f3():
     """
     numpy.empty + append
     """

     extra = 100
     l = extra
     a = numpy.zeros((l,))
     for i in xrange(100):
         b = numpy.empty((extra,))
         a = numpy.append(a, b)
     return a

a1 = f1()
a2 = f2()
a3 = f3()

if a1.shape == a2.shape == a3.shape:
     print "they are all returning the same size array"
else:
     print "Something is wrong!"


-- 
Christopher Barker, Ph.D.
Oceanographer

Emergency Response Division
NOAA/NOS/OR&R            (206) 526-6959   voice
7600 Sand Point Way NE   (206) 526-6329   fax
Seattle, WA  98115       (206) 526-6317   main reception

Chris.Barker@noaa.gov


More information about the NumPy-Discussion mailing list