2016 - 2024

感恩一路有你

python编程 python如何提高for循环效率?

浏览量:3156 时间:2021-03-16 05:30:51 作者:admin

python如何提高for循环效率?

本回答适用于python3.xpython本身速度确实相对比较慢。 但是相对来说,python有比直接的for循环快速的写法。比如标准for循环写法如下for i in range(10000): i**2这样就比较慢,标准写法的嵌套循环更慢。可改写为列表推断式 : [ i**2 for i in range(10000)], 这样就比直接for循环标准写法要快不少; 此外, 还可以用python自带的高级函数 map,自动并行计算。写为 list(map(lambda i: i**2, range(10000))) 也很快。 map函数和列表推断式速度差不多。

Python语言其实很慢,为什么机器学习这种快速算法步骤通常还是用呢?

对于用过几种开发语言(java,c#,nodejs,erlang),而后转Python做机器学习的人,我说说我的看法。

首先,大家说python慢是真的吗?我的回答是真的。非常慢,for循环比cpp慢两个数量级。

那为什么还用Python?假如我们遍历过亿的数据,两个数量级的差异是无法接受的。但如果我们用python做最上层的逻辑,把上亿数据进行分块,python只循环十几次,剩下扔给cpu和gpu。那么两个数量级是否就无所谓了呢?1毫秒和100毫秒在整个系统中真的无所谓了。

python最大的优势在于,可以非常非常优雅的把数据扔给高效的c,cuda去做计算。numpy,pandas,numba这些优秀的开源库可以非常方便的高效的处理海量的数据,借助zmq,celery等还可以做分布式计算,gevent借助系统的epoll进行io优化。所以,不需要花太多精力,就可以优雅,高效的实现海量的数据处理,机器学习的任务。这是python火爆的原因。

想想,同样的性能,代码只有cpp或java的三分之一甚至更少,是不是很有诱惑力?

python编程 python多进程加快for循环 python教程

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。