Python是一个强大的语言,它基于C语言。虽然C语言本身非常快,但是做成Python解释器后,C因为要处理众多的细节、语法、数据结构,所以牺牲了很大一部分的性能,导致Python执行一行代码的速度普遍比C语言慢上50倍。
但Python的一行代码能实现的一般都比C语言要多得多,所以,Python速度相对较慢这个问题,是最不是问题的问题。
但有时候速度问题却让人很头疼,特别是类似数据分析的时候,需要有大量的基础加减乘除、列表、循环的操作的时候,Python慢这一特点就突显出来了。
这篇文章就围绕列举出了4种能方便快捷地给Python提速的方法。
目录numpy | 高效的数组简介
lru_cache | 缓存功能
PyPy | 什么?Python做的Python能比Python更快?
numba | 高效的Python编译器
Numpy | 高效的数组
学数据分析的人对这个模块肯定很熟悉了。NumPy是使用Python进行科学计算的基础软件包,它提供了一个快速的,高效的,功能全面的数组:Ndarray,使用它替换Python内置的列表,会让Python的速度有很大提升。下面来简单使用一下。
安装
$ pip install numpy附注:下面在命令行里执行的命令,提示符统一为 "$",而Python解释器里是 ">>>",PyPy里是 ">>>>",如果什么都没有,则说明这是一段代码。附注也会以这样的形式出现。
如果pip下载速度太慢,你可以尝试使用镜像地址,效果很好。
就是这么简单。
创建数组
让我们先打开Python解释器并导入numpy:
$ python
Python 3.8.6 (tags/v3.8.6:db45529, Sep 23 2020, 15:52:53) [MSC v.1927 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy as np
>>>附注:"np"是numpy导入和调用时常用的别名
如果没有错误,则说明你安装成功了。
下面创建一个ndarray对象:
>>> import numpy as np
>>>
>>> # 创建一个数组,数组内的值全为np.int32类型(就是整数)
>>> x = np.array([2, 3, 5, 9, 8, 4, 13, 99], np.int32)
>>> type(x)
>>> x.dtype
dtype('int32')
>>> x
array([ 2, 3, 5, 9, 8, 4, 13, 99])
>>>
可以看到,我们创建了一个数组。创建的时候,传入了一个叫np.int32的值,,这是一个dtype对象,这表示数组内的值全为np.int32类型,也就是整型。
ndarray数组是不可以存入不同的类型的值,例如np.int32(整数)类型的数组不可以存np.float32(小数)类型的值。