原生python与numpy数组向量相加效率对比
计算一个数据元素的平方与立方之和
1、原生python
#向量相加 - 原生Python
def pythonvector(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
2、numpy实现
#向量相加 - numpy
import numpy
def numpyvector(n):
a = numpy.arange(n) ** 2
b = numpy.arange(n) ** 3
c = a + b
return c
3、效率对比
#效率比较
import sys
from datetime import datetime
n = 1000
start = datetime.now()
c = pythonvector(n)
end = datetime.now() -start
print "The last 3 elements of the result ",c[-3:]
print "pythonvector elapsed time ",end.microseconds
start = datetime.now()
c = numpyvector(n)
end = datetime.now() -start
print "The last 3 elements of the result ",c[-3:]
print "numpyvector elapse