我是一名工科学生,我必须做很多数值处理,绘图,模拟等工具.我目前使用的工具是Matlab.我在大学的计算机上使用它来完成大部分作业.但是,我想知道有哪些免费选项.
我做了一些研究,很多人都说python在各种场景下都是matlab的有效替代品.我想知道如何用python做这一切.我正在使用mac,所以我如何安装不同的python包.那些包裹是什么?它真的是一个可行的选择吗?使用这个python设置我可以做什么和不能做什么?
在Mac上,最简单的入门方式是(没有特别的顺序):
Enthought Python Distribution包含您可能需要的大多数科学包.免费用于学术/非商业用途.
Macports - 最新版本的最新版本,所以sudo port install py26-numpy py26-scipy py26-matplotlib py26-ipython
应该让你入门.
Scipy Superpack - 用于安装所有重要软件包的最新svn版本的脚本.
大约两年前我完成了这个(用Python代替Matlab)并且没有回头.Python中的广播,更直观的记忆模型和其他Numpy优势使数字作品成为一种完全的乐趣.再加上f2py,cython将内循环放在另一种语言中非常容易.这是一个很好的起点 - 提供动力的其他令人印象深刻的页面是PerformancePython和ParallelProgramming.一定要了解Pythons"变量是一个对象的引用"语义......在那个调整之后,一切都是一帆风顺的.打败matlab的最酷的事情之一就是2行,我运行8个核心... p = Pool(8); res = p.map(analysis_function,list_of_data)
- MATLAB与工具箱相似的工具箱非常昂贵,我还没有看到实际拥有它们的大学.
我已经使用Matlab编程了大约15年,使用Python编写了大约10年.它通常以这种方式分解:
如果您满足以下条件:1.您主要使用矩阵和矩阵运算2.您有资金获得Matlab许可证3.您在mathworks支持的平台上工作
然后,一定要使用Matlab.否则,如果您的数据结构不是矩阵,那么需要一个开源选项,允许您在不担心许可证的情况下提供解决方案,并且需要在mathworks不支持的平台上构建; 那么,请使用Python.
matlab语言很笨拙,但用户界面很光滑.Python语言非常好 - 使用matlab缺少的迭代器,生成器和函数编程工具; 但是,如果你不喜欢(或不能使用)SAGE,你将不得不挑选并选择一个漂亮的光滑界面.
我希望有所帮助.
用Python替换Matlab时要考虑三个方面; 核心语言功能,IDE和Price.
能力比较本节概述了每个平台的所有功能.简而言之,Matlab可以做的一切,Python也可以做更多.然而,像线性代数和快速原型制作Matlab这样的东西更干净.
Matlab中的所有内容都已捆绑在一起,工具箱可以无缝集成.它也更成熟 - 但不是为通用编程而设计的,这意味着任何非线性代数相关的东西都难以实现.
工具箱: Matlab工具箱非常好,python实现通常很难与它们竞争(即使对于不那么专业的事情,如优化算法).
线性代数: Matlab具有简洁的线性代数功能,更易于阅读和解释.
可视化功能:具有非常好的和非常广泛的可视化功能.
Python将需要许多额外的模块才能成为一个很好的Matlabreplacement.
通用编程: Python是一种适当的编程语言,它比Matlab提供了更多的灵活性.
Numpy:提供数组和线性代数例程,但是语法比Matlab更笨拙.我已经爱上了广播功能,但不再repmat
浪费了.
SciPy:统计,优化和其他有用的数学东西.
MatPlotLib:在我看来,提供比Matlab更高质量的图.此外,它的设计在语法上类似于Matlab,因此应该很容易上手.
SymPy:良好的符号编程包.
IDE比较
这是我认为python缺乏的地方.我简单地发现算法开发(特别是涉及大量线性代数)在Matlab IDE中不那么痛苦.
以下是一些关键的Matlab功能,如果没有工程专业学生,这些功能很难实现.请注意,Python IDE确实也具有其中一些功能,但实施起来却更加笨拙.
强大的调试:可以非常非限制性的方式轻松探索功能.Python也允许调试,但在IDE中通常不是那么干净.
变量资源管理器: MATLAB有一个很好的变量资源管理器,它总能很好地查看许多支持的数据类型.一些python IDE很难显示numpy数组,这可能很烦人.
变量生存:如果代码在运行时中断,变量仍然存在,这有助于调试.此外,假设持久变量,连续运行不同的脚本更容易.在Python中,您必须在脚本中手动保存变量,以使其可用于其他脚本.
Profiler:非常适合您的算法瓶颈的细分.
命令行单行指令可以在命令行上执行.Python在所有优秀的IDE中也完全支持这一点.
GUI绘图工具:可以从用户界面快速轻松地绘制结果和变量.大多数Python IDE都面向软件开发,因此不支持这一点(尽管sypder通过matplotlib提供的支持有限).
文档:所有函数都在IDE中具有本机文档.
有一些新的python IDE开始与MATLAB的一些关键优势竞争.我个人喜欢最近作为免费社区版本发布的PyCharm.它具有以下功能,并且从UI角度设计得非常好.
Bebugging
变量浏览器
命令行
文档
价格对比
Python是免费的,并且拥有一个活跃的支持社区.Matlab也有一个很好的支持社区,但不是免费的.