24 式加速你的 Python
一,分析代码运行时间
第1式,测算代码运行时间
平凡方法

快捷方法(jupyter环境)

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

快捷方法(jupyter环境)

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


快捷方法(jupyter环境)

第4式,按行分析代码运行时间
平凡方法




快捷方法(jupyter环境)

二,加速你的查找
第5式,用set而非list进行查找
低速方法


高速方法

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


高速方法

三,加速你的循环
第7式,优先使用for循环而不是while循环
低速方法

高速方法

第8式,在循环体中避免重复计算
低速方法

高速方法

四,加速你的函数
第9式,用循环机制代替递归函数
低速方法

高速方法

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

高速方法

第11式,用numba加速Python函数
低速方法

高速方法

五,使用标准库函数进行加速
第12式,使用collections.Counter加速计数
低速方法

高速方法

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


高速方法

六,使用高阶函数进行加速
第14式,使用map代替推导式进行加速
低速方法

高速方法

第15式,使用filter代替推导式进行加速
低速方法

高速方法

七,使用numpy向量化进行加速
第16式,使用np.array代替list
低速方法

高速方法

第17式,使用np.ufunc代替math.func
低速方法

高速方法

第18式,使用np.where代替if
低速方法


高速方法

八,加速你的Pandas
第19式,使用csv文件读写代替excel文件读写
低速方法

高速方法

第20式,使用pandas多进程工具pandarallel
低速方法


高速方法

九,使用Dask进行加速
第21式,使用dask加速dataframe
低速方法

高速方法

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


高速方法

十,应用多线程多进程加速
第23式,应用多线程加速IO密集型任务
低速方法

高速方法

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

高速方法

——The End——

本文分享自微信公众号 - 生信科技爱好者(bioitee)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。
24 式加速你的 Python的更多相关文章
- 飞跃式发展的后现代 Python 世界
飞跃式发展的后现代Python世界 如果现代Python有一个标志性特性,那么简单说来便是Python对自身定义的越来越模糊.在过去的几年的许多项目都极大拓展了Python,并重建了“Python”本 ...
- 24式太极拳:3D动画演示(图文)
http://blog.sina.com.cn/s/blog_4be33b740102e9ae.html 24式太极拳:3D动画演示(图文) (2013-03-10 18:45:55) 转载▼ 标签: ...
- 18式优雅你的Python
本文来自读者梁云同学的投稿,公众号:Python与算法之美 一,优雅你的Jupyter 1,更改Jupyter Notebook初始工作路径 平凡方法: 在cmd中输入jupyter notebook ...
- 使用cython库对python代码进行动态编译达到加速效果及python第三方包的制作安装
1.测试代码:新建 fib.pyx # coding:utf-8 import matplotlib.pyplot as plt import numpy as np from sklearn.cl ...
- 一句话打印'*'图案(列表推导式, 人生苦短, 我用Python)
```python # coding=utf-8 print ('\n'.join(['*'*6 for i in range(4)])) # ****** # ****** # ****** # * ...
- 看完100篇Python技术精华文章,平均涨薪30%!
一个以技术为立身根基的教育机构做出来的微信号,干货程度会有多高? 马哥Linux运维公众号运营五年,从一开始的定位就是给技术人分享加薪干货的地方.这五年里,公众号运营最重的任务就是做内容.内容并不好做 ...
- Python正则式的基本用法
Python正则式的基本用法 1.1基本规则 1.2重复 1.2.1最小匹配与精确匹配 1.3前向界定与后向界定 1.4组的基本知识 2.re模块的基本函数 2.1使用compile加速 2.2 ma ...
- 大数据全栈式开发语言 – Python
前段时间,ThoughtWorks在深圳举办一次社区活动上,有一个演讲主题叫做“Fullstack JavaScript”,是关于用JavaScript进行前端.服务器端,甚至数据库(MongoDB) ...
- 为什么说Python 是大数据全栈式开发语言
欢迎大家访问我的个人网站<刘江的博客和教程>:www.liujiangblog.com 主要分享Python 及Django教程以及相关的博客 交流QQ群:453131687 原文链接 h ...
- Python——正則表達式(2)
本文译自官方文档:Regular Expression HOWTO 參考文章:Python--正則表達式(1) 全文下载 :Python正則表達式基础 ======================== ...
随机推荐
- Redis Cluster集群搭建及节点的添加、删除
系统性学习,移步IT-BLOG 一.什么是 Redis Cluster Redis 是在内存中保存数据的,而我们的电脑一般内存都不大,这也意味着 Redis 不适合存储大数据,适合存储大数据的是 Ha ...
- DevOps 在未来将如何演进?丨行业观察
自2007年 DevOps 这一概念推出以来,越来越多企业开始将开发和运维团队结合在一起,以加快部署速度,提高软件开发生命周期的效率和协作.但是,诸多因素都会对 DevOps 是否成功产生影响,例如组 ...
- IOC创建对象方式
IOC创建对象方式 User 类 public class User { private String name; public User(String name) { ...
- 数据泵:impdp导入用户ORA-01653
,问题描述:在导入一个用户数据的时候,大小为14G左右,导进来的时候卡半天,后来发现是表空间满了,已经恢复了大概6G左右,剩下8G左右没有恢复.此时磁盘剩余19G,加了15G的表空间,磁盘就剩下4G左 ...
- RDIF.vNext全新低代码快速开发框架平台发布
1.平台介绍 RDIF.vNext,全新低代码快速开发集成框架平台,给用户和开发者最佳的.Net框架平台方案,为企业快速构建跨平台.企业级的应用提供强大支持. RDIF.vNext的前身是RDIFra ...
- CTFshow愚人杯-被遗忘的反序列化
这题虽然只有100的分值,但是我觉得它涉及到的东西还蛮多的,写个随笔记录一下. 题目 <?php # 当前目录中有一个txt文件哦 error_reporting(0); show_source ...
- 突破传统监测模式:业务状态监控HM的新思路
作者:京东保险 管顺利 一.传统监控系统的盲区,如何打造业务状态监控. 在系统架构设计中非常重要的一环是要做数据监控和数据最终一致性,关于一致性的补偿,已经由算法部的大佬总结过就不在赘述.这里主要讲如 ...
- vue2路由导航守卫(钩子函数)
https://router.vuejs.org/zh/guide/advanced/navigation-guards.html#%E5%85%A8%E5%B1%80%E5%89%8D%E7%BD% ...
- C# 禁用窗口激活
如果界面点击时,不想让窗口激活,可以按如下操作: 1 public MainWindow() 2 { 3 InitializeComponent(); 4 SourceInitialized += O ...
- 2021牛客OI赛前集训营-提高组(第三场) 第二题 交替 题解与结论证明
题目描述 一个长度为 \(n\) 的数组\(A\),每秒都会变成一个长度为 \(n − 1\) 新数组 \(A'\),其变化规 则如下: 若当前数组 \(A\) 的长度 \(n\) 为偶数,则对于新数 ...