《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)
有问题的是,这里arange()中只能是1. 不然会发生错误。猜想是str(arr)时除了问题。
如果是简单的函数/语句,可以用这个测试(timeit也本就是为小段代码设计的)。稍微复杂点的,还是用其他方法测试吧。