如何提高python的运行效率/缩短运行时间

最近python刚刚入门不久,由于正好有要解决的问题,因此要用到python来做实验,感觉磕磕绊绊很多,所以自己也总结了一下前车之鉴。

python是一门解释性语言(高级语言可以按照翻译成机器语言的不同方式分为编译性语言和解释性语言,编译性语言指的是运行的时候先经过编译,即生成一个可执行文件,如.exe,以后运行这个.exe的时候就不用经过编译了,效率高。解释性语言指的是翻译的方式是解释,就是不经过编译,但是每一次运行都要解释一次,运行效率比编译性语言低),因此需要尽可能地避免造成运行效率低的情况。根据我这段时间的实践,把一些比较直观的经验介绍给大家:

1.数据结构一定要选对

 能用字典就不用列表:字典在索引查找和排序方面远远高于列表。我的数据集比较大,有百万个数据,有一部分代码是我要进行排序,一开始我选择的是列表,但是排序完成之后需要8分钟,这样真的太慢了,后来我选用了字典之后,只用了十几秒就出了结果。这个效果是令我震惊的。

2.多用python中封装好的模块库

 我现在用的主要的模块有numpy,matplotlib,pandas这三个。matplotlib是绘图库,这个就不多说了,但我发现numpy和pandas是很强大的,numpy主要是用于计算的,里面有一个数据类型叫numpy.ndarray。ndarray 是一个多维的数组对象,具有矢量算术运算能力和复杂的广播能力,并具有执行速度快节省空间的特点。ndarray 的一个特点是同构:即其中所有元素的类型必须相同
这个ndarray和list列表的主要区别如下:

list是python基本数据类型,它的元素类型可以不同
ndarray是numpy的一种数据类型,它所包含的元素必须相同
关于它的具体的使用方法可以见https://www.cnblogs.com/sirkevin/p/5738185.html

ndarray类型拥有很多便捷的函数可以进行矩阵运算,而pandas在大数据的处理方面有更加强大的能力。我在这方面的主要应用是将数据保存成.csv文件和从.csv文件中读入的时候用到了这个模块,用到了pandas中的Dataframe和Series,进行数据运算的时候超级方便。具体的一些使用方法可以见http://blog.csdn.net/u010159842/article/details/53673124

3.参考前人https://www.cnblogs.com/yd1227/archive/2010/11/23/1885186.html

你可能感兴趣的:(python)