python timeit

《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也本就是为小段代码设计的)。稍微复杂点的,还是用其他方法测试吧。



你可能感兴趣的:(python timeit)