[Numpy-discussion] numpy 10x slower than native Python arrays for simple operations?

Joseph Turian turian at gmail.com
Sat Feb 6 16:21:55 EST 2010


I have done some profiling, and the results are completely
counterintuitive. For simple array access operations, numpy and
array.array are 10x slower than native Python arrays.

I am using numpy 1.3.0, the standard Ubuntu 9.03 package.

Why am I getting such slow access speeds?
Note that for "array access", I am doing operations of the form:
    a[i] += 1

Profiles:

[0] * 20000000
   Access: 2.3M / sec
   Initialization: 0.8s

numpy.zeros(shape=(20000000,), dtype=numpy.int32)
   Access: 160K/sec
   Initialization: 0.2s

array.array('L', [0] * 20000000)
   Access: 175K/sec
   Initialization: 2.0s

array.array('L', (0 for i in range(20000000)))
   Access: 175K/sec, presumably, based upon the profile for the other
array.array
   Initialization: 6.7s

Any idea why my numpy array access is so slow?

Thanks,
    Joseph



More information about the NumPy-Discussion mailing list