强化学习用pythin多还是matlab多?
如果是学生,或者研究人员,比如研究信号处理,那么用matlab比较好,有大量现成工具箱和前人的成果可以借鉴。如果是产品化项目,那么python比较好,可以做web后台,可以打包成应用程序,效率相对matlab也要高那么一点点。
如果是信号、数据方面的工程人员,建议还是两个都掌握吧,也不复杂,都是脚本式的语言,比C++什么的易学多了。
下面从两者各自的应用做个对比。
一、python的优势
Python相对于Matlab最大的优势:免费。国内可能不是很在乎这个,但在国外是个很关键的问题。
Python次大的优势:开源。你可以大量更改科学计算的算法细节。
可移植性,Matlab必然不如Python。但你主要做Research,这方面需求应当不高。
第三方生态,Matlab不如Python。比如3D的绘图工具包,比如GUI,比如更方便的并行,使用GPU,Functional等等。长期来看,Python的科学计算生态会比Matlab好。
语言更加优美。另外如果有一定的OOP需求,构建较大一点的科学计算系统,直接用Python比用Matlab混合的方案肯定要简洁不少。
python作为一种通用编程语言,可以做做Web,搞个爬虫,编个脚本,写个小工具用途很广泛。
二、matlab的优势
学术界大量使用matlab做仿真,做研究的话容易找到代码参考;
语法相对python更灵活一些,matlab写程序基本不用套路,所谓老夫撸matlab就一个字,干;
有simulink。有人说simulink没什么用,其实还是挺有用的,比如通信建模,另外simulink可以生产DSP或者FPGA代码,有的时候很有用。
MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。
三、两者的区别
python是一种通用语言,而matlab更像是一个平台。
在你纠结于python应该使用哪个库,哪个ide,怎么把ide改成中文,为什么ide有bug,能不能交互式编写的时候。matlab已经完成了从入门到建模。
Python强于MATLAB的地方:
1 可视化
主要归功于Seaborn库。
老版本的MATLAB绘图丑爆了, 新版本(最近几年, 具体哪个版本开始记不清了)的MATLAB绘图系统有大更新, 有美化, 但是还是不如seaborn.
2 机器学习
主要归功于scikit-learn。
从模型的个数和API统一性来看, scikit-learn完爆MATLAB.
3 深度学习
主要归功于pytorch,TensorFlow。
4 数据处理
主要归功于pandas库。
pandas简直是是神器, 这个没办法, 不是MATLAB太弱, 是pandas太强.
5 循环加速
主要归功于numba库.
MATLAB的循环加速的话, 目前来看, 好像只能靠mex技术(本质上是用C/C++语言重写).
我之前写过相关的性能测试文章:
[高性能实战案例]MATLAB,Julia, Python(Numba)haitao:[高性能实战案例]MATLAB,Julia, Python(Numba)?http://zhuanlan.zhihu.com结果汇总一下(取平均值, 单位是秒):
MATLAB的向量化版: 10.207570
Julia的向量化版: 5.251
Julia的loop版: 2.952
Julia的loop2版: 1.731
Julia的loop3版: 0.321392
Python的numba版: 0.477
Julia, Python(Numba), C++, MATLAB 性能测试之“冰雹数”haitao:Julia, Python(Numba), C++, MATLAB 性能测试之“冰雹数”?http://zhuanlan.zhihu.com运行时间总结(单位是秒), 取每种语言速度最快的那个版本:
MATLAB: 4.134375
Julia(@inbounds) 1.142
C++(我写的代码): 1.869
Python(numba) 1.13
MATLAB的地方强于Python的地方:
1 信号处理
2 IDE
MATLAB的IDE设计出来就天生适合做数据分析的. Python的Spyder就模仿MATLAB的界面, 但是只模仿了一部分, 还是不如MATLAB.
3 各种工具包统一的数据格式。
Python的各个包是不同的作者团队独立开发的, 因此, 难以做到数据格式统一, API统一.
总结:
Python发展迅猛, 已经抢占了不少领域了, 比如数据分析, 机器学习, 深度学习.
MATLAB还是有它优势的领域, 这些领域暂时无法被替代.
人工智能技术python是主流
Python Matlab/Simulink Pendulum 强化学习联合仿真- 知乎 https://zhuanlan.zhihu.com/p/626494735