Python学习笔记——测试加载数据所需时间

程序的执行时间

测试天猫天池大赛——阿里移动推荐算法给出的D数据集包含2千多万条样本,文件大小约1G;P数据集包含60多万条记录,文件大小约10M。可以进一步测试数据全部加载所需时间,从而对数据量有个更直观的感受(这里采用python-pandas,测试代码如下)。结果显示,在我的计算机环境下,D数据集载入pandas-dataframe耗时约17s,P数据集载入耗时不到1s。(可以看到数据集的规模比较大,基于普通PC环境的分析处理可能会承受一定的压力,可考虑分块操作或抽样分析。)

    
'''
@author: csw
'''

import os
import sys
import timeit
import pandas as pd

start_time = timeit.default_timer()

# data loading using pandas
with open("../fresh_comp_offline/tianchi_fresh_comp_train_user.csv", mode = 'r') as data_file:
    df = pd.read_csv(data_file)
    
end_time = timeit.default_timer()

print(('The code for file ' + os.path.split(__file__)[1] +
       ' ran for %.2fm' % ((end_time - start_time) / 60.)), file = sys.stderr)


接下来,就几种python的统计时间方式对比一下:

方法1:

import datetime
starttime = datetime.datetime.now()
#long running
#do something other
endtime = datetime.datetime.now()
print (endtime - starttime).seconds

datetime.datetime.now()获取的是当前日期,在程序执行结束之后,这个方式获得的时间值为程序执行的时间

方法2:

start = time.time()
#long running
#do something other
end = time.time()
print end-start

time.time()获取自纪元以来的当前时间(以秒为单位)。如果系统时钟提供它们,则可能存在秒的分数。所以这个地方返回的是一个浮点型类型。这里获取的也是程序的执行时间

方法3:

start = time.clock()
#long running
#do something other
end = time.clock()
print end-start

time.clock()返回程序开始或第一次被调用clock()以来的CPU时间。 这具有与系统记录一样多的精度。返回的也是一个浮点类型。这里获得的是CPU的执行时间。 

方法4:

%time sentences = sum(df.review.apply(split_sentences),[])

这不是python的语法,是ipython的特殊功能,用于测试语句运行的时间。ipython安装:pip install ipython,打开ipython:命令行输入ipython就可以了。ipython还有很多特殊功能,你可以自己去查,网上资源还是很多的。

猜你喜欢

转载自blog.csdn.net/qq_32607273/article/details/81144371