python基础教程廖雪 Python语言其实很慢,为什么机器学习这种快速算法步骤通常还是用呢?
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一定要会算法吗?
刚开始入门时,不是必须学好算法的。但是随着技术的深入,算法还是需要的,不然只能干点"搬砖"的活儿。
1、学好软件开发离不开计算机理论基础,如数据结构、操作系统、网络技术、算法研究等。如果热爱这门技术,这些都是不问题,先入门,这些慢慢的都可以补上。
2、关于算法,它是软件开发的灵魂,没有好的算法写不出优秀的程序。
3、如何学习算法,首先选取经典算法教材。基础的可以先从《数据结构》学起,里面有些基础算法,然后再去学专门的算法(其实把数据结构范畴的算法学好,一般就够用了)。还有网上有很多论坛,算法网站,为了吸引眼球 一般都做的浅显易懂。还有大部分算法为c语言,但语言在算法层面都相通的,明白算法模型才是最重要的。
4、万事开头难,只要入门,剩下的就是慢慢经营这门技术就行了。算法在实践中学的最快也最牢固。
希望能帮到你
为什么有些算法岗位,需要用C 而不是python?
C/C 是比较底层的语言,可以对CPU/内存等计算机资源特别是硬件进行非常精细的控制,算法运算做到最精细自然要使用它们。
但是它们的优点自然也是他们的缺点,精细的操作自然需要精细的编程,精细的编程自然需要繁复的语言设定,比如什么是指针什么是指针函数什么是函数指针……等你搞清这些佶屈聱牙的概念,你大概也没有写代码的冲动了。更何况,你想写出高性能的代码,这些概念是必须精通的
python有一个很重要的特性,就是所谓的“胶水语言”,“胶水”的意思就是,它可以把不同语言编写的代码模块组合在一起,然后统一通过python去调用。其实绝大多数算法库都是使用C/C 编写,然后提供python的接口供用户使用,毕竟大部分人只需要知道怎么调用封装好的算法就好。但你要想实现自己的算法就必须会C/C
打个不是很恰当的比方,python就像电视遥控器,C/C 就像遥控器里的电板,平时你想换换台,你只要按按钮就好。但是有一天你就是要个把画面旋转九十度的功能,而遥控器上没有这个功能,但是拆了遥控器电板插几个元件就能实现,你咋办?
如何根据算法写python?
Python有很多第三方的算法包,可以满足日常的算法调用,直接pip安装,然后import引用即可。
有哪些Python入门好书推荐,经典?
书不在多,在于坚持和实践,这里推荐一本,带pdf和网页教程,只要持续敲实例代码,定能有所收获。
PDF下载连接:https://chly.github.io/adjunct/用python做科学计算.pdf
网页链接:http://bigsec.net/b52/scipydoc/#id3
坚持实践就是胜利!
python基础教程廖雪 python排序算法 python算法大全
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。