做数据分析里有哪些python能做,而matlab不能做的?

本人对matlab用的比较熟, 经常听别人推荐python, 在犹豫要不要学, 比较学习一门新语言,是有时间成本的。如果做数据分析,有哪些python能做,而matlab不能做的?回复内容:
我个人会一些 python 和 matlab,我主要使用 c++ 实现智能算法来进行数据分析。就我所知,这些语言都能胜任所有的数据分析任务,区别无非就是难易程度;你所需要的做的是尽可能的使用你已经最为熟练的语言,并且把精力专注于理论、算法和实际建模上。是的,基本上什么语言都可以实现智能算法;智能算法本身只和相关理论、算法设计与实际建模有关,和具体语言无关。但是不同的语言,由于其提供的工具包不同,导致实现算法的难易程度有别。就我所知,matlab 和 python 在数据分析这个领域提供的数据包几乎一样多,都很全。所以我建议你继续加强你自己熟悉的 matlab,有时间感兴趣的话,可以考虑尝试学习 python。如果你真的想从事人工智能、数据挖掘这个大领域,我建议你把精力从最基础的编程语言提高到对其基本原理、算法设计和实际建模上来。这样可能更有裨益。学会了这三样,哪怕用 c++ 这种类库少的可怜的语言,你都能很轻松的完成数据分析。反过来,假如你不熟悉这些,只会用工具包跑一个结果的话,你不仅对方法不甚理解,更可怕的是你可能并没有依据具体问题进行建模;这样的结果,只能是一种不太入门的水平。这是我的看法。ps: 看了大家的答案,我觉得我的回答局限在数据分析核心算法这个层面上;如果需要完成一个从头到尾的数据分析系统,必然如 @路强 所说的,python 会更胜一筹。但我还是要强调核心算法在完整的数据分析系统中也是重中之重这一点,所以我还是极力建议提高对方法本身的理解。
例子很多,看你的具体应用,python骨子里是万能语言,matlab骨子里是矩阵运算,在通用的语言功能方面有先天不足,比如楼上说的字符串处理,matlab能做但肯定不如python用着舒服,如果你还要做中文分词、自然语言处理可能会更麻烦了。硬要举例子,那我也可以举一个,我需要:1. 在aliyun上布一个分布式爬虫每天定时上网抓数据,然后完成数据的清洗和入库。有入postgressql的,有入mongodb的。2. 因为sql数据可能会更改数据结构,所以我还要用orm的方式对数据库表结构的更改做版本管理。3. 整理完的数据我要用一定的模型进行分析,然后动态生成一些图表。4. 我要做一个动态网页将相关的数据以及分析的图表展现出来。上述工作(以我对matlab的了解)matlab只能完成第3步,而python全都可以做,并且往aliyun上安装个盗版(我当然买不起正版)的基于linux的matlab想想也挺蛋疼的,当然如果你的需求仅仅是第3步,你完全可以用matlab。—————————————————————————————————————————————ps:我不知道生产环境下有多少真正用matlab做数据分析的,但知道python用得真挺多,用到生产环境下的话你必然要考虑matlab的成本问题。所以题主如果是想从事数据分析这个行当而不是仅仅为了搞科研,建议还是要学习一下python这种免费的语言,尽管python可能在数值型的数据分析方面不如matlab库多,但是python能胜任的事情真的会更多,从数据抓取、清洗、整理、分析一直到展示都可以只用一种语言,并且python真得学起来挺简单。这里没有黑matlab的意思,我从98年就开始用matlab,帮助我完成了很多个项目,对其还是有好感的,做数据处理确实是能大幅度提升开发效率。离校后用得越来越少,下盗版太不方便了,并且在自己机器上装这么个使用频率不高的庞然大物的欲望很低。而python,任何一个linux发行版都自带,再随便装上一两百兆的工具就可以干活了。
matlab操作字符串很不爽,虽然貌似也都能干。这样在做生物信息学这种需要频繁操作字符串的工作的时候,就会很不爽。我周围基本没有拿matlab做生信的,虽然它有这个包。
距离上次提问有将近一年时间了,根据自己的实践,自问自答一下。1 数据清洗,数据预处理方法,python的pandas完爆matlab啊。2 机器学习方法,python的scikit太好用了,matlab在这方面算法少,而且优化超参要一层一层循环,而scikit-learn一两句搞定。3 深度学习方法,python有的theano,keras,lasagne等等,而matlab这方面的库几乎没有,找到的一个,还停止维护了,还建议使用python的库。。。4 感觉matlab相比python最明显的优势是它的ide,调试很方便,文档很全。
如果别人为你预处理数据,那好很多。自己爬数据,或者转换格式python加标准或第三方库舒服很多
matlab 完全做不了的应该很少,只是多数时候 python 更容易,比如读取 sqlite 数据库,写 gui 程序,需要与操作系统交互的场合,ironpython 与 com 的交互,或者在 matlab 里需要把 for 改成 parfor 然后发现公司没有买 parallel toolbox 的时候……一句话吧:python 有 import 大法,这个 matlab 有点难……好吧,除了读数据库方便和并行计算不需要购买,其他几项并不是数据科学里必须的……
matlab和python都是图灵完备的,python能做到的matlab也能做到吧!就是两种语言在某些方面没有另一种用的爽……

Posted in 未分类

发表评论