《numpy & scipy》中看到narray和list 速率的比较,Ipython环境,直接在命令行里就进行了。
在python环境下就稍微复杂一点了,略微一试。
import numpy as np
from timeit import timeit
def list_time(alist, scalar):
n = len(alist)
for i in range(n):
alist[i] = alist[i] * scalar
def array_time(arr, scalar):
arr = arr * scalar
if "__name__ == __main__":
#data = np.load('hw3_train.dat')
arr = np.arange(1)
larr = arr.tolist()
scalar = 6
f1 = 'array_time('+str(arr)+','+str(scalar)+')'
print timeit(f1,'from __main__ import array_time', number=100)
f2 = 'list_time('+str(larr)+','+str(scalar)+')'
print timeit(f2,'from __main__ import list_time', number=100)
这是100次的运行结果。
有问题的是,这里arange()中只能是1. 不然会发生错误。猜想是str(arr)时除了问题。
如果是简单的函数/语句,可以用这个测试(timeit也本就是为小段代码设计的)。稍微复杂点的,还是用其他方法测试吧。