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



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值