当前位置:Gxlcms > Python > 机器学习和计算机视觉方向的CS硕士研究生,应该往python还是MATLAB发展?

机器学习和计算机视觉方向的CS硕士研究生,应该往python还是MATLAB发展?

时间:2021-07-01 10:21:17 帮助过:299人阅读

题主背景:电子本科研究生转CS(机器学习和计算机视觉方向),MATLAB用的比较熟。

想往python发展,原因:
1. python在网络编程和文本处理方面感觉做的比MATLAB好一点。
2. python写出来的脚本很容易编译成exe文件,MATLAB脚本要在没有安装MATLAB的环境上运行比较困难。
3. 好像很多公司现在招聘都青睐会python的。

感觉MATLAB的优点:
1. 调试很方便,鼠标指着变量就能显示当前值,而且图像处理过程中只要imshow一下就可以看到当前图像被处理成什么样子了。
2.感觉知道的python IDE没有MATLAB那么强大(可能是我孤陋寡闻,python大神勿喷),调试起来没有matlab方便。

回复内容:

我刚刚用python的时候也有这些顾虑,感觉Matlab的一大优点在于它的IDE做得好,这种可以直接查看变量数据的编辑器简直太有用了,而且debug起来也特别容易。其实python也有类似的编辑器,叫Spyder,界面类似Matlab,功能也相近。建议题主直接去python官网下载anaconda发行版,这类似于一个Kit,里面有Spyder编辑器,python解释器以及一些常用的或很主流的包,里面也有专门用于下载安装其他包的工具,非常方便。 关于Python的IDE,可以参考这个:
在机器学习科学计算领域,有哪些工具能让python和matlab一样好用? - 李海涛的回答 如果你选择以后就业而不是做科研,你最终都会回到C++上来! 这个问题当然取决于你所在方向上别人用什么做了,视觉方面大家给的源代码茫茫多都是MATLAB的(当然更多的是连代码都不放的)。
当然反过来如果做了deep learning这样都是Python接口的东西,你硬上MATLAB也是给自己找麻烦。
总之应该选一个实现起来最快的语言,毕竟是为了验证想法和拿到实验数据。
至于你考虑到的找工作方面,我觉得无非是学一个新语言而已,自己随便学学然后写几个小东西就足够了。而且如果你学Python是为了找工作,有时间钻研Python不如把时间拿去刷题。 我曾经是Matlab的忠实粉丝,不过近年来用Python多了一些。

Python主要有这么几个优点:
1) 比Matlab体积小得多;
2) 各种非数值计算的库丰富(尤其是文本处理、网络方面的);
3) 程序比Matlab还简洁一些。

不过,在Matlab的IDE里画图的方便性,还是Python的matplotlib所不能比拟的,所以需要画图时我就会打开Matlab。

最近我发现Python也有了个IDE叫Spyder,可以直接画图。虽然还没有用过,但看起来是要完爆Matlab的节奏…… 推荐 julia

优点:

  1. 数学表达能力强,原生支持各种矩阵、向量运算。个人感觉各种功能的正交组合甚至超过了 MATLAB 。例如: MATLAB 矩阵运算中,可以和 . 搭配的运算符很有限,.* (Element-wise multiplication), .^(Element-wise power), ./ (Right array division), .\ (Left array division), .' (Array transpose)。julia 语言中,运算符与 . 的搭配就很正交,几乎所有运算符都可以加上.运算符,变成 elementwise (元素对元素的)运算符。
  2. 具有伟大的性能提升的潜力。性能极限甚至超过 C 语言。原因很简单,对于变量的数据类型,可以不指定来自动推断,也可以手动指定。手动指定变量类型之后的速度,基本就等价于 C。当使用自动类型推断的时候,可以像 python 或者 MATLAB 一样快速开发原型。当手动指定类型之后,可以用近乎 C 一般的速度去跑生产代码。
  3. 语言年轻,且去中心化。2015年4月9日的版本是0.3.7,还没有到1.0,各种语言特性都在剧烈变动中。比 C 语言还快的原因有两方面:A. 可以利用 C 语言发明以来最新的业界经验和科研成果。B. 整个 julia 语言的基础是基于 github 开源的,保证了语言的开放性。又由于有足够多学术界的关注,最新的学界成果得以引入 julia 语言中。
  4. 直接调用 C, Python,Java, MATLAB 和 R。C 调用这个算是现代语言的基本功能,但 julia 做得很舒服。无需配置,直接用 ccall。格式如下,ccall((:函数名,“指定C库文件”),返回值类型,(输入参数数据类型),输入参数)。PyCall github.com/stevengj/PyC)得说是很流氓的。使用起来也是超级方便:using PyCall; @pyimport numpy as np; s = sin(3 * t + 4 * np.cos(2 * t)); 。例如:绘图包 PyPlot (github.com/stevengj/PyP)就是利用 Python。一连几年 julia 都一直在 PyCon 上做宣传。同样邪恶的还有 JavaCallgithub.com/aviks/JavaCa) 和 RCall (github.com/JuliaStats/R)。其实 JuliaLang 也有个包叫 MATLAB.jl (github.com/JuliaLang/MA),支持直接调用 MATLAB,最大限度的保护你的智力投资。
  5. 原生的单元测试支持。默认程序包开发的格式中,就内置了测试架构。语言内置单元测试宏 @test。我个人觉得其实这里差一点,还没有对于行为驱动开发 (BDD)的原生支持。这一点可能在我看懂 FactCheck.jl (github.com/julialang/fa)之后再进一步修改。
  6. 方便自由的程序包开发。只要在 github 上开一个 .jl 结尾的代码库,然后按照指定格式提交 METADATA 给 JuliaLang。就可以把自己开发的包提交到 Julia 官方库。 很少有哪个语言的委员会这么亲民的,TeXLive还得是每年升级呢。程序包是否受官方包管理器支持对于成果推广的价值是无法估量的。我学习 julia 不到一周的时候就提交一个库(github.com/quxiaofeng/P),且被纳入官方包库,这里顺便安利一下。
原生可以调用 python,且可以使用与 matlab 极为相似的语法。有MAT.jl包可以读写mat文件,与实验室其他matlab用户共享数据,良好兼容。

对应ipython, 有ijulia。 这个问题没必要争了,matlab 2014b 开始支持调用Python和被Python调用了。 1.请使用正版matlab

2.python请使用pycharm,有社区版,也可以付费购买专业版

3.python有matplotlib,画图也很简单

4.matlab生成exe比python简单多了

5.请养成下断点调试的习惯 1. Python有一个包叫IPython,可能比matlab方便。而且画图的话用matplotlib几乎就是matlab的移植。
2. 但是科学计算上性能通常还是matlab略胜一筹,而且工具包支持比较强大(不过Python也在迎头赶上了)。
3. 如果要做文本处理和网络的话还是Python吧。
4. 可以两个同时学啊。 问题是matlab好贵的,只有选择python了,可以省去装盗版破解的时间。

人气教程排行