对比pure python和numpy对向量加法的运算效率:
<pre name="code" class="python">import numpy
import sys
from datetime import datetime
def pythonsum(n):
a = range(n)
b = range(n)
c = []
for i in range(len(a)):
a[i] = i**2
b[i] = i**3
c.append(a[i]+b[i])
return c
def numpysum(n):
a = numpy.arange(n)**2
b = numpy.arange(n)**3
c = a+b
return c
#size = int(sys.argv[1])
size = long(40000)#numpy的arange默认32位,计算大数的时候会造成溢出
start = datetime.now()
c = pythonsum(size)
#print c
delta = datetime.now()-start
print 'The last 2 element of the sum', c[-2:]
print 'PythonSum elapsed time in microseconds', delta.microseconds
print type(c[-1])
start = datetime.now()
c = numpysum(size)
#print c
delta = datetime.now()-start
print 'The last 2 element of the sum', c[-2:]
print 'PythonSum elapsed time in microseconds', delta.microseconds
print type(c[-1])
输出
<pre name="code" class="python">The last 2 element of the sum [63992000319996L, 63996800040000L]
PythonSum elapsed time in microseconds 72000
<type 'long'>
The last 2 element of the sum [63992000319996 63996800040000]
PythonSum elapsed time in microseconds 4000
<type 'numpy.int64'>