python数据分析经典案例,python数据分析简单例子
加速Python
运算速度对于生物信息学来说非常重要,因为在大多数情况下,我们需要自己编写代码来提取数据和处理格式。另外,信息生成领域的原始数据往往是上千万行,至少需要上万行的基因标注,所以尽快得到想要的结果是大佬们想要的。
解释性语言(python、perl等)的平均速度。)远不如编译语言(C,C,Java等。),但是解释性语言比简单明了的语法好,代码少,效率高。他们可以快速处理数据、分析并获得结果。虽然比不上速度,但也不能自暴自弃。从数据结构到算法,他们都能加快程序的计算速度。本文不讨论算法,只通过数据结构等方面加快python的运行速度。
以下示例代码在jupyter中测试,不同硬件配置运行速度不一致。
字符串链接(与将列表改为字符串的原理相同)
%%timeit
tp=(str(i) for i in range(1000))
strs=
对于tp中的I:
strs=i
# 585 s每圈225 s(平均标准偏差。戴夫。7次运行,每次1000个循环)
%%timeit
tp=(str(i) for i in range(1000))
.加入(tp)
# 223 s每圈1.07 s(平均标准偏差。戴夫。7次运行,每次1000个循环)
导数公式
%%timeit
a=[]
对于范围内的I(1000):
a .追加(一**2)
# 376 s每圈2.95 s(平均标准偏差。戴夫。7次运行,每次1000个循环)
%%timeit
[i**2代表范围内的I(1000)]
# 344 s每圈2.51 s(平均标准偏差。戴夫。7次运行,每次1000个循环)
复制列表。
%%timeit
a=[1,2,2,12,1,1,2,1,2,1,2,12,12,1,22]
d={}
因为我在一个:
d[i]=0
钥匙()
# 1.04 s每环路298 ns(平均标准偏差。戴夫。7次运行,每次1000000个循环)
%%timeit
a=[1,2,2,12,1,1,2,1,2,1,2,12,12,1,22]
设置(一)
# 527纳秒,每循环195纳秒(平均标准偏差。戴夫。7次运行,每次1000000个循环)
有一阵子
%%timeit
a=1000
s=0
而0:
s=a
a -=1
# 94.2秒每圈34.8秒(平均标准偏差。戴夫。7次运行,每次10000个循环)
%%timeit
s=0
对于范围内的I(1000):
s=i
# 46.5 s每圈194 ns(平均标准偏差。戴夫。7次运行,每次10000个循环)
查找元素(包括列表)
%%timeit
a=范围(1000)
d=dict((i,1) for i in a)
500英寸深
# 127 s每圈43.1 s(平均标准偏差。戴夫。7次运行,每次10000个循环)
%%timeit
a=范围(1000)
s=集合(a)
500英寸
# 21每循环79 ns(平均标准偏差。戴夫。7次运行,每次10000个循环)
循环指数
%%timeit
a=范围(1000)
对于范围内的I(len(a)):
a[i]
# 164 s每圈55.1 s(平均标准偏差。戴夫。7次运行,每次10000个循环)
%%timeit
a=范围(1000)
对于I,v在列举(一):
v
# 41.6 s每圈470 ns(平均标准偏差。戴夫。7次运行,每次10000个循环)
以上是最基础的加速方法,高级的属于第三方模块加速:1。整体python加速,用numba或者pypy(部分模块不支持);2.使用C语言实现的包加速;3.使用DASK进行熊猫式加速;4.numpy可用于加速正常数据或矩阵数据;5.IO密集型任务,使用多线程。6.使用多个进程的CPU密集型任务。对于字母生成,这是我们常用的7。加速过程中经常用到的内置包:collections、itertools等。
上面列举的几乎每一个都可以自己写一篇长篇大论。对于数据分析或者字母生成分析,用的最多的就是数据结构要写好,其次是numpy,多进程,内置包。后面的事情以后再说吧。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。