一,分析代码运行时间

第1式,测算代码运行时间

 

平凡方法

教你降龙24掌加速你的Python代码_python

 

快捷方法(jupyter环境)

教你降龙24掌加速你的Python代码_运行时间_02

 

 

第2式,测算代码多次运行平均时间

 

平凡方法

教你降龙24掌加速你的Python代码_多进程_03

 

快捷方法(jupyter环境)

教你降龙24掌加速你的Python代码_python_04

 

第3式,按调用函数分析代码运行时间

 

平凡方法

教你降龙24掌加速你的Python代码_python_05

教你降龙24掌加速你的Python代码_运行时间_06

 

快捷方法(jupyter环境)

教你降龙24掌加速你的Python代码_python_07

 

第4式,按行分析代码运行时间

 

平凡方法

教你降龙24掌加速你的Python代码_数据分析_08

教你降龙24掌加速你的Python代码_运行时间_09

教你降龙24掌加速你的Python代码_python_10

教你降龙24掌加速你的Python代码_数据分析_11

 

快捷方法(jupyter环境)

教你降龙24掌加速你的Python代码_运行时间_12

二,加速你的查找

第5式,用set而非list进行查找

低速方法

教你降龙24掌加速你的Python代码_递归函数_13

教你降龙24掌加速你的Python代码_多进程_14

 

高速方法

教你降龙24掌加速你的Python代码_多进程_15

 

第6式,用dict而非两个list进行匹配查找

 

低速方法

教你降龙24掌加速你的Python代码_多进程_16

教你降龙24掌加速你的Python代码_python_17

 

高速方法

教你降龙24掌加速你的Python代码_数据分析_18

三,加速你的循环

第7式,优先使用for循环而不是while循环

 

低速方法

教你降龙24掌加速你的Python代码_运行时间_19

 

高速方法

教你降龙24掌加速你的Python代码_运行时间_20

 

第8式,在循环体中避免重复计算

 

低速方法

教你降龙24掌加速你的Python代码_递归函数_21

 

高速方法

教你降龙24掌加速你的Python代码_数据分析_22

四,加速你的函数

第9式,用循环机制代替递归函数

 

低速方法

教你降龙24掌加速你的Python代码_python_23

 

高速方法

教你降龙24掌加速你的Python代码_多进程_24

 

第10式,用缓存机制加速递归函数

 

低速方法

教你降龙24掌加速你的Python代码_python_25

 

高速方法

教你降龙24掌加速你的Python代码_递归函数_26

 

第11式,用numba加速Python函数

 

低速方法

教你降龙24掌加速你的Python代码_python_27

 

高速方法

教你降龙24掌加速你的Python代码_递归函数_28

五,使用标准库函数进行加速

第12式,使用collections.Counter加速计数

低速方法

教你降龙24掌加速你的Python代码_数据分析_29

 

高速方法

教你降龙24掌加速你的Python代码_多进程_30

第13式,使用collections.ChainMap加速字典合并

低速方法

教你降龙24掌加速你的Python代码_多进程_31

教你降龙24掌加速你的Python代码_递归函数_32

 

高速方法

教你降龙24掌加速你的Python代码_运行时间_33

六,使用numpy向量化进行加速

第14式,使用np.array代替list

低速方法

教你降龙24掌加速你的Python代码_运行时间_34

 

高速方法

教你降龙24掌加速你的Python代码_运行时间_35

第15式,使用np.ufunc代替math.func

低速方法

教你降龙24掌加速你的Python代码_数据分析_36

 

高速方法

教你降龙24掌加速你的Python代码_python_37

第16式,使用np.where代替if

低速方法

教你降龙24掌加速你的Python代码_运行时间_38

教你降龙24掌加速你的Python代码_多进程_39

 

高速方法

教你降龙24掌加速你的Python代码_python_40

七,加速你的Pandas

第17式,使用np.ufunc函数代替applymap

 

低速方法

教你降龙24掌加速你的Python代码_数据分析_41

 

高速方法

教你降龙24掌加速你的Python代码_多进程_42

 

第18式,使用预分配存储代替动态扩容

 

低速方法

教你降龙24掌加速你的Python代码_数据分析_43

 

高速方法

教你降龙24掌加速你的Python代码_python_44

 

第19式,使用csv文件读写代替excel文件读写

 

低速方法

教你降龙24掌加速你的Python代码_递归函数_45

 

高速方法

教你降龙24掌加速你的Python代码_数据分析_46

第20式,使用pandas多进程工具pandarallel

 

低速方法

教你降龙24掌加速你的Python代码_运行时间_47

教你降龙24掌加速你的Python代码_递归函数_48

 

高速方法

教你降龙24掌加速你的Python代码_运行时间_49

八,使用Dask进行加速

第21式,使用dask加速dataframe

低速方法

教你降龙24掌加速你的Python代码_多进程_50

 

高速方法

教你降龙24掌加速你的Python代码_数据分析_51

第22式,使用dask.delayed进行加速

低速方法

教你降龙24掌加速你的Python代码_数据分析_52

教你降龙24掌加速你的Python代码_运行时间_53

 

高速方法

教你降龙24掌加速你的Python代码_数据分析_54

 

九,应用多线程多进程加速

第23式,应用多线程加速IO密集型任务

低速方法

教你降龙24掌加速你的Python代码_多进程_55

 

高速方法

教你降龙24掌加速你的Python代码_多进程_56

第24式,应用多进程加速CPU密集型任务

低速方法

教你降龙24掌加速你的Python代码_递归函数_57

 

高速方法

教你降龙24掌加速你的Python代码_数据分析_58

 

 

END

关注【程序IT圈】,更多的Python好文输出

教你降龙24掌加速你的Python代码_递归函数_59