ZKX's LAB

python 演算法 优缺点 为什么有些算法岗位,需要用C++而不是python?

2020-10-04知识12

如何看待 python 的性能? 这是我看到网友比较java和c语言的结果再测JAVA性能比C/C++好问题-大师的资源-博客频道-CSDN.NET我…

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的三分之一甚至更少,是不是很有诱惑力?

为什么有些算法岗位,需要用C++而不是python? C/C++是比较底层的语言,可以对CPU/内存等计算机资源特别是硬件进行非常精细的控制,算法运算做到最精细自然要使用它们。但是它们的优点自然也是他们的缺点,精细的操作自然需要精细的编程,精细的编程自然需要繁复的语言设定,比如什么是指针什么是指针函数什么是函数指针…等你搞清这些佶屈聱牙的概念,你大概也没有写代码的冲动了。更何况,你想写出高性能的代码,这些概念是必须精通的python有一个很重要的特性,就是所谓的“胶水语言”,“胶水”的意思就是,它可以把不同语言编写的代码模块组合在一起,然后统一通过python去调用。其实绝大多数算法库都是使用C/C++编写,然后提供python的接口供用户使用,毕竟大部分人只需要知道怎么调用封装好的算法就好。但你要想实现自己的算法就必须会C/C++打个不是很恰当的比方,python就像电视遥控器,C/C++就像遥控器里的电板,平时你想换换台,你只要按按钮就好。但是有一天你就是要个把画面旋转九十度的功能,而遥控器上没有这个功能,但是拆了遥控器电板插几个元件就能实现,你咋办?

Python有什么优势和劣势?

python的优缺点是什么?

Python有哪些优缺点?为何人工智能首选Python?先说优点吧。Python语法简洁优美,功能强大,标准库和第三方库非常强大。因此,写起来简单。其他语言,如Java和C等需:-人工。

在算法竞赛中,主用Python,会有什么坏处? 萌新不太懂,最近做OJ,感觉用py比用c轻松很多,故来此一问

Python 对比 Matlab,有什么决定性的优势? 如题,小博士一名,在做一些推荐算法、主题模型方面的东西。之前一直用 Matlab 比较多,也做过一些和 C、…

#python#算法#python函数#人工智能#python算法

随机阅读

qrcode
访问手机版