Py学习  »  Python

24招加速你的Python,超级实用!

小白学视觉 • 1 年前 • 142 次点击  

点击上方小白学视觉”,选择加"星标"或“置顶

重磅干货,第一时间送达

云哥前期从以下九个方面讨论了加速Python的具体方法,一共24个,每个都带有优化前后的对比,非常实用。

  1. 分析代码运行时间

  2. 加速查找

  3. 加速循环

  4. 加速函数

  5. 实用标准库加速

  6. Numpy向量化加速

  7. 加速Pandas

  8. Dask加速

  9. 多线程多进程加速


我在此基础上主要美化了编辑,方便读者更容易阅读学习。



一 、分析代码运行时间


1 测算代码单次运行时间


平凡法:



快捷法(Jupyter):



2 测算代码重复执行多次平均用时


平凡法:



快捷法(Jupyter):



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


平凡法:



快捷法(Jupyter):



4 按行分析代码运行时间


平凡法:



快捷法(Jupyter):




二、加速你的查找


5 用set而非list进行in查找


低速法:



高速法:



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


低速法:



高速法:




三、加速你的循环


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


低速法:



高速法:



8 循环体中避免重复运算


低速法:



高速法:




四、加速你的函数


9、用缓存机制加速递归函数


低速法:



高速法:



10、用循环取代递归


低速法:



高速法:



11、 使用Numba加速Python函数


低速法:



高速法:




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


12、使用collections.Counter类加速计数


低速法:



高速法:



13、使用collections.ChainMap加速字典合并


低速法:



高速法:




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


14、使用np.array代替list


低速法:



高速法:



15、使用np.ufunc代替math.func


低速法:



高速法:



16、使用np.where代替if


低速法:



高速法:




七、加速你的Pandas


低速法:



高速法:



18、避免动态改变DataFrame的行数


低速法:



高速法:



19、使用csv文件读写代替xlsx文件读写


低速法:



高速法:



20、使用pandas多进程工具pandarallel


低速法:



高速法:




八、使用Dask进行加速


21、使用dask加速dataframe


低速法:



高速法



22、使用dask.delayed应用多进程加速


低速法:



高速法:




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


23、使用多线程提升IO密集任务效率


低速法:



高速法:



24、使用多进程提升CPU密集任务效率


低速法:



高速法:



好消息!

小白学视觉知识星球

开始面向外开放啦👇👇👇



下载1:OpenCV-Contrib扩展模块中文版教程
在「小白学视觉」公众号后台回复:扩展模块中文教程即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。

下载2:Python视觉实战项目52讲
小白学视觉公众号后台回复:Python视觉实战项目即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。

下载3:OpenCV实战项目20讲
小白学视觉公众号后台回复:OpenCV实战项目20讲即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。

交流群


欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN 算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~


Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/147940
 
142 次点击