python性能优化

01 在列表里面计数

性能:第二种计数方法比第一种快不要太多,因为Python原生的内置函数都是优化过的,所以能用原生的计算的时候,尽量用原生的函数来计算,所以能用原生的内置的数据结构,一定要用原生的(集合set去重也类似)。

02 过滤一个列表

性能:第二种方法有可能比第一种慢,有人可能觉得filter应该会快一些,其实filter增加了复杂度,返回一个迭代对象再用list转化为一个列表,所以开销大一些。其实最快是推导列表,比第一种性能快(这里仅仅是对于列表而言,如果不用转化为列表,那么高阶函数(map,filter等)就更快)。

03 列表成员检查

性能:第二种比第一种快近一倍,直接用in这样的方法检查列表内部成员比遍列要快很多的,然而更快的是使用第三:用set而非list进行查找

04 列表的排序

性能:第二种比第一种快了近6倍,sorted函数会把原来的列表进行排序然后再返回一个新的列表,而sort函数直接再原来的列表上面排序,节省了开销。

05 把迭代循环放到函数里面

性能:第二种明显要比第一种快,原因是因为把重复的循环直接放到了一次性的塞入函数,避免了多次调用函数的开销。

06 检查列表是否为空(检查是否为True)

性能:一个更比一个快。

07 使用[ ] {} 而不是list(),dict ()

性能:没有对比没有伤害,因为Python一切皆对象,所以当你用list()生成一个对象的时候会产生开销,而[]直接返回一个list,会快很多,同理dict也是一样的。

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

性能:dict方法更快

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

性能:for循环更快

10 循环体中避免重复计算

11 用循环机制代替递归函数

12 用缓存机制加速递归函数

13 用numba加速Python函数

14 使用collections.Counter加速计数

使用np.array代替list

低速方法

高速方法

使用np.ufunc代替math.func

低速方法

高速方法

使用np.where代替if

低速方法

高速方法

用csv文件读写代替excel文件读写

低速方法

高速方法

使用pandas多进程工具pandarallel

低速方法

高速方法

使用dask加速dataframe

低速方法

高速方法

使用dask.delayed进行加速

低速方法

高速方法

应用多线程加速IO密集型任务

低速方法

高速方法

应用多进程加速CPU密集型任务

低速方法

高速方法

python:性能优化(一)相关推荐

  1. [转载] Python性能优化技巧总结

    参考链接: Python代码的优化技巧 欢迎加入Python学习交流群:535993938  禁止闲聊 ! 名额有限 ! 非喜勿进 ! 选择了脚本语言就要忍受其速度,这句话在某种程度上说明了 pyth ...

  2. Python性能优化

    http://blog.csdn.net/pipisorry/article/details/39998317 python 作为脚本的一个不足之处,那就是执行效率和性能不够理想,特别是在 perfo ...

  3. 1.python性能优化

    Python性能优化--1 1.去掉不必要的显式for,改为向量化计算(numpy) 2.使用numba加速 3.使用多进程(开核) 4.使用sklearn.extenals.joblib扩展库 5. ...

  4. Python性能优化指南--让你的Python代码快x3倍的秘诀

    Python性能优化指南 Python最为人诟病的就是其执行速度.如何让Python程序跑得更快一直是Python核心团队和社区努力的方向.作为Python开发者,我们同样可以采用某些原则和技巧,写出 ...

  5. “Python性能优化”讲稿分享

    "Python性能优化"讲稿分享 烟花三月,对我来说,是一个多事的季节.谋划了人生中的第一次跳槽,手忙脚乱地,终于匆忙离职.在之前,曾经打算给公司的同事们搞个交流会,一起聊聊关于P ...

  6. python输出程序运行时间_叨叨 Python 性能优化工具

    虽然Python是一个"慢慢的"语言,但是不代表我们对性能没有任何的追求,在程序运行过程中,如果发现程序运行时间太长或者内存占用过大,免不了需要对程序的执行过程进行一些监测,找到有 ...

  7. python性能优化plus

    优化算法时间复杂度 算法的时间复杂度对程序的执行效率影响最大,在Python中可以通过选择合适的数据结构来优化时间复杂度,如list和set查找某一个元素的时间复杂度分别是O(n)和O(1).不同的场 ...

  8. python 性能优化

    文章目录 性能测试 运行速度 内存消耗 并行加速 分布式 并行 多线程 多进程 框架 即时编译 njit case1 计算熵 case2 找到最大概率类别 case3 计算两两准确率 GPU 使用工具 ...

  9. shedskin--- 一种python性能优化工具

    shedskin http://code.google.com/p/shedskin/ 虽说python的性能在脚本语言中还算杰出,但是当程序中出现for,while循环或者函数递归调用的情况,其性能 ...

  10. python转c工具shedskin_shedskin— 一种python性能优化工具 | 学步园

    虽说python的性能在脚本语言中还算杰出,但是当程序中出现for,while循环或者函数递归调用的情况,其性能就下降的非常快. 比如,用递归方法计算fibonacci(33) ,C语言只要几毫秒,但 ...

最新文章

  1. 刷题总结——拆网线(noip模拟 贪心)
  2. Qt中的基础图形绘制
  3. java鼠标经过时变色_将鼠标悬停在标签上时,鼠标指针会变为手形
  4. access 查找工龄大于30_ACCESS查询操作题完整
  5. Python继承类的方式实现多线程及控制线程数
  6. System.arraycopy()实现数组之间的复制
  7. Securing DevOps 免积分下载
  8. UI设计中关于按钮的那些事
  9. 服务器数据库文件恢复,数据库数据恢复
  10. 用VMware克隆CentOS 6.4后修改HWaddr
  11. Siebel系统中配置LDAP认证
  12. RDL 报表 - 横向合并单元格后单元格被撑高
  13. excel表格打印每页都有表头_excel技巧:excel表格打印后每页自动带标题、页眉页脚...
  14. 谷歌创始人布林申请离婚:身价930亿美元 曾出轨前妻闺蜜
  15. php tp6 错误接管分析,终于成功使用whoops接管tp6的异常处理!
  16. CNCC 2018 经典计算机算法技术论坛全解读 | CNCC 2018
  17. 无线CE认证中的DFS测试
  18. 用jackson实现json和字符串直接的转换
  19. CPCI总线计算机软件无法运行,CPCI总线计算机的加固设计研究.pdf
  20. 开题:轴承的剩余寿命预测(为什么要长时间长序列预测,意义)

热门文章

  1. 银河麒麟V10 - postgresql/postgis完整部署
  2. 幽一把默:想摸个一筒,竟是个一筒!
  3. 20162316刘诚昊 17年10月9日测验“排序课堂测试”
  4. mysql有什么不同_mysql 和 mysql2 有什么不一样
  5. java long 除_java中long型除法
  6. uvalive 3523 Knights of the Round Table 圆桌骑士(强连通+二分图)
  7. Java工程师初学Android(四)(转)
  8. python中demo函数是什么意思_Python函数(中)
  9. 如何通过cmd查看python版本
  10. 牛客寒假基础集训营 | Day1 D题—hanayo和米饭