首页
技术笔记
网址导航
Json在线解析
二维码
Ip地址查询
在线流程图
新用户注册
|
会员登录
在线工具
开发笔记
毒鸡汤
网址导航
免费在线流程图
2赞
766
当前位置:
开发笔记
>
编程语言
> 正文
做数据分析里有哪些Python能做,而MATLAB不能做的?
作者:ERIK又 | 2021-09-03 02:32
本人对MATLAB用的比较熟,经常听别人推荐Python,在犹豫要不要学,比较学习一门新语言,是有时间成本的。如果做数据分析,有哪些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也能做到吧!就是两种语言在某些方面没有另一种用的爽……
推荐阅读
程序员
为什么SPAN的高度超过其字体大小
如何解决《为什么SPAN的高度超过其字体大小》经验,为你挑选了0个好方法。 ...
[详细]
程序员
如何在javascript中获取服务器端cookie值?
如何解决《如何在javascript中获取服务器端cookie值?》经验,为你挑选了0个好方法。 ...
[详细]
程序员
悬停时在链接前显示"▶"?
如何解决《悬停时在链接前显示"▶"?》经验,为你挑选了2个好方法。 ...
[详细]
程序员
C++调用默认构造函数而不是复制构造函数
如何解决《C++调用默认构造函数而不是复制构造函数》经验,为你挑选了1个好方法。 ...
[详细]
程序员
如何在Laravel测试中禁用选定的中间件
如何解决《如何在Laravel测试中禁用选定的中间件》经验,为你挑选了1个好方法。 ...
[详细]
程序员
包含NSTableView的深色充满活力的窗口 - 调整背景颜色
如何解决《包含NSTableView的深色充满活力的窗口-调整背景颜色》经验,为你挑选了0个好方法。 ...
[详细]
程序员
C#WinForm多次单击事件处理程序以实现类似功能
如何解决《C#WinForm多次单击事件处理程序以实现类似功能》经验,为你挑选了1个好方法。 ...
[详细]
程序员
html,正文100%导致滚动条出现
如何解决《html,正文100%导致滚动条出现》经验,为你挑选了1个好方法。 ...
[详细]
程序员
SFSafariViewController完成按钮不起作用
如何解决《SFSafariViewController完成按钮不起作用》经验,为你挑选了1个好方法。 ...
[详细]
程序员
从外部调用webpacked代码(HTML脚本标记)
如何解决《从外部调用webpacked代码(HTML脚本标记)》经验,为你挑选了3个好方法。 ...
[详细]
程序员
python .get()和None
如何解决《python.get()和None》经验,为你挑选了1个好方法。 ...
[详细]
程序员
将变量从子表单传递给父表单
如何解决《将变量从子表单传递给父表单》经验,为你挑选了1个好方法。 ...
[详细]
程序员
如何列出类的所有方法(不是扩展和包含的方法)
如何解决《如何列出类的所有方法(不是扩展和包含的方法)》经验,为你挑选了1个好方法。 ...
[详细]
程序员
将2D数组附加到3D数组,扩展第三维
如何解决《将2D数组附加到3D数组,扩展第三维》经验,为你挑选了1个好方法。 ...
[详细]
程序员
为什么malloc在全局命名空间中?
如何解决《为什么malloc在全局命名空间中?》经验,为你挑选了1个好方法。 ...
[详细]
程序员
PDF Miner PDFEncryptionError
如何解决《PDFMinerPDFEncryptionError》经验,为你挑选了1个好方法。 ...
[详细]
程序员
R CMD检查指定的库路径
如何解决《RCMD检查指定的库路径》经验,为你挑选了1个好方法。 ...
[详细]
程序员
在处理大型集合时优化jQuery selector/addBack()
如何解决《在处理大型集合时优化jQueryselector/addBack()》经验,为你挑选了0个好方法。 ...
[详细]
程序员
使用ceil或round时对成员的模糊引用
如何解决《使用ceil或round时对成员的模糊引用》经验,为你挑选了1个好方法。 ...
[详细]
程序员
改变UINavigationBar的模糊效果
如何解决《改变UINavigationBar的模糊效果》经验,为你挑选了0个好方法。 ...
[详细]
吐了个 "CAO" !
吐个槽吧,看都看了
会员登录
|
用户注册
ERIK又
这个屌丝很懒,什么也没留下!
关注作者
Tags | 热门标签
actionscrip
bash
c#
c++
c语言
erlang
flutter
go
golang
java
javascript
lua
node.js
perl
php
python
scala
typescript
RankList | 热门文章
1
安装和注册shell扩展上下文菜单来自wix安装程序
2
如何使用retofit2和RxAndroid取消请求
3
为什么非const std :: array :: operator []不是constexpr?
4
如何使用CSS水平居中链接元素?
5
更改字符时拆分字符串
6
PEAR和Composer有什么区别?
7
哪一个是有效的初始化变量ie)构造函数或激活方法?
8
如何使用正则表达式对列表元素进行排序?
9
使用Swift中的UITextView属性自定义UIView的加载时间较慢
10
什么时候应该使用静态数据成员与const全局变量?
11
如何保持cts:从匹配内部XML标签突出显示?
12
IIS配置错误 - 此配置部分不能在此路径中使用
13
保护和加密多租户云应用程序的共享数据库中的数据
14
如何在不编写长查询的情况下查询所有GraphQL类型字段?
15
拖放将自定义HTML拖放为拖动图像
16
C中三个有效值的平均值
17
用JavaScript创建MP4视频
18
不能使用'PhpParser\Node\Scalar\String'作为类名,因为它是保留的
19
如何加载模块并导航到模块?棱镜
20
是否可以仅从Firebase检索密钥列表?
DevBox开发工具箱 | 专业的在线开发工具网站
京公网安备 11010802040832号
|
京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有