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正則表達式基础 ======================== ...
随机推荐
- 大数据面试——HDFS
一.Hadoop1.0 与 Hadoop2.0的区别
- 2020寒假学习笔记13------Python基础语法学习(二)
同一运算符 同一运算符用于比较两个对象的存储单元,实际比较的是对象的地址. 运算符 描述 is is 是判断两个标识符是不是引用同一个对象 is not is not 是判断两个标识符是不是引用 ...
- PHP微信三方平台-授权登录
一.逻辑步骤解析 步骤 1:第三方平台方获取预授权码(pre_auth_code) 步骤 2:引入用户进入授权页 第三方平台方可以在自己的网站中放置"微信公众号授权"或者" ...
- DataLeap 数据资产实战:如何实现存储优化?
更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 背景 DataLeap 作为一站式数据中台套件,汇集了字节内部多年积累的数据集成.开发.运维.治理.资产.安全等全 ...
- Etherscan本地多文件开源(VScode)
项目创建 创建文件夹 mkdir Duckereum cdDuckereum 添加nodejs配置 npm init -y 安装依赖添加 npm install -D hardhat npm ...
- 非线性规划—R实现
非线性规划 非线性规划是一种求解目标函数或约束条件中有一个或几个非线性函数的最优化问题的方法.运筹学八大分支之一,20世纪50年代初,库哈(H.W.Kuhn) 和托克 (A.W.Tucker) 提出了 ...
- 安装Minikube并启动一个Kubernetes环境
安装Minikube并启动一个Kubernetes环境 Minikube 是一种轻量级的Kubernetes 实现,可在本地计算机上创建VM 并部署仅包含一个节点的简单集群.Minikube 可用于L ...
- 【LeetCode回溯算法#extra01】集合划分问题【火柴拼正方形、划分k个相等子集、公平发饼干】
火柴拼正方形 https://leetcode.cn/problems/matchsticks-to-square/ 你将得到一个整数数组 matchsticks ,其中 matchsticks[i] ...
- VMware Workstation Pro许可证
永久许可证:ZC10K-8EF57-084QZ-VXYXE-ZF2XF 备用许可证: UF71K-2TW5J-M88QZ-8WMNT-WKUY4 AZ7MK-44Y1J-H819Z-WMYNC-N7A ...
- .NET实现解析字符串表达式
一.引子·功能需求 我们创建了一个 School 对象,其中包含了教师列表和学生列表.现在,我们需要计算教师平均年龄和学生平均年龄. //创建对象 School school = new School ...