我正在考虑学习Python以放弃MatLab的想法,虽然我真的很喜欢MatLab。然而,我担心让所有移动和独立的部分融合在一起可能是一个挑战,最终可能不值得。我也考虑过使用Visual Basic或Visual C ++。最后,我不断回到MatLab的简易性。有关使用Python的难度的任何想法或评论?值得吗?
答案 0 :(得分:2)
一个好的起点是这个页面:SciPy getting started,它概述了您可以用来从Python转向MatLab的科学工具堆:特别是库numpy,{ {3}},scipy和互动式工作环境matplotlib。特别是,numpy和matplotlib的设计与使用MatLab非常相似。
NumPy的数组类型增加了Python语言的高效数据结构,可用于数值工作,例如操作矩阵。 NumPy还提供基本的数值例程,例如用于查找特征向量的工具。
例如在matlab中你可能会写
eye(3)-diag([1 1],1)
然后回来
1 -1 0
0 1 -1
0 0 1
在Python / numpy中你会写
import numpy as np
np.eye(3)-np.diag([1,1],1)
然后回来
array([[ 1., -1., 0.],
[ 0., 1., -1.],
[ 0., 0., 1.]])
使用matplotlib
通过面向对象的界面或MATLAB用户熟悉的一组函数,您可以完全控制线条样式,字体属性,轴属性等。
在MatLab中进行绘图可能会写
x=linspace(-pi, pi, 100);
plot(x,sin(x))
在Python / numpy / matplotlib中你会写
x=np.linspace(-np.pi, np.pi, 100)
import matplotlib.pyplot as plt
plt.plot(x,np.sin(x))
网上有很多专为过渡的人设计,例如, IPython
MATLAB®和NumPy / SciPy有很多共同之处。但是有很多不同之处。创建NumPy和SciPy是为了用Python最自然的方式进行数值和科学计算,而不是MATLAB®克隆。本页面旨在收集有关差异的智慧,主要是为了帮助熟练的MATLAB®用户成为熟练的NumPy和SciPy用户。 NumPyProConPage是一个好奇的人的另一个页面,他们正在考虑采用Python与NumPy和SciPy而不是MATLAB®,并希望看到一个优缺点列表。
您可能还想考虑NumPy for Matlab Users,它将numpy和matplotlib组合到一个命名空间中,因此您不必费心使用我使用的np
和plt
前缀以上。例如,参见pylab。
此网站上有一些值得关注的标签:例如wikipedia,numpy,scipy。在stats.se上还有一个matplotlib,你可能会发现它是相关的。如果您对统计数据,或阅读,编写和操作表格数据感兴趣,您会对question on Python,Python对pandas的回答感兴趣。
至于C ++,它是一种很棒的语言,但与Python不在同一类别。这不是讨论它们的优点和缺点的正确位置,但简而言之,C ++比Python更接近机器,如果你花时间可以编写高度优化的代码。在Python中,您可以非常快速地获得代码,将独立的部分粘合在一起,轻松地从任何地方读取和写入数据,但Python代码有时会运行缓慢(就像Matlab一样 - 如果你在numpy中快速地向量化它很快,否则它会被解释而且很慢。您可能偶尔想要使用Python调用C中定义的函数来加速缓慢的Python代码,例如,参见R's data frame。 (我会将Visual Basic留给一边,因为它看起来并不相关。)
最后,如this question所述,回答任何细节都需要确切了解您的要求,不仅仅是您想做什么,还有您想要做什么,以及需要多少时间和金钱你可以投资。
答案 1 :(得分:0)
是的Python值得学习。这是我十年前学到的第一门主要语言。它在Linux系统中大量使用,尤其是在系统启动时。该语言的库也非常发达。如果你想设计一款游戏PyGame已经存在很长时间了,这个过程非常简单。如果你想为网络编程,Twisted是一个很棒的图书馆。他们的网络框架Django是一个美女。
我发现Python是一种非常英语的语言。
如果您愿意,您也可以在Ruby上巅峰。 Ruby允许许多不同风格的编程。因此,您可以像在Ruby中使用其他语言一样编程(我严格意味着风格)。 Ruby也有最多"免费"我在网上学习和使用语言的资源。
我喜欢这两种语言。但我对你的回答是#34;是的!" Python是一门优秀的第一语言。
这完全取决于你想做什么,以及你喜欢什么方法。
答案 2 :(得分:-3)
Python非常适合像Arduino那样的固件编程。对于编程软件而言,C ++非常强大且非常强大。应用。如果你想编程硬件,请使用python。如果您想编写软件,请使用C ++。我正在学习C ++和它的伟大。