Im рассматривая изучение Python с идеей отпустить MatLab, хотя мне очень нравится MatLab. Тем не менее, я обеспокоен тем, что получение всех движущихся и независимых предметов, которые могут сочетаться друг с другом, может быть проблемой, и в конечном итоге это может не стоить того. Я также думал о том, чтобы попасть в Visual Basic или Visual C++. В конце концов, я все время возвращаюсь к легкости MatLab. Любые мысли или комментарии относительно сложности перехода на Python? Стоит ли оно того?
Хорошим местом для начала является эта страница: начало работы SciPy, в котором дается обзор научной инструментальной таблицы, которую вы могли бы использовать для перехода к MatLab из Python: в частности, библиотеки numpy, scipy, matplotlib и интерактивная рабочая среда IPython, В частности, 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))
В Интернете много возможностей для людей, совершающих переход, например, NumPy для пользователей Matlab.
MATLAB и NumPy/SciPy имеют много общего. Но есть много различий. NumPy и SciPy были созданы, чтобы сделать численные и научные вычисления наиболее естественным способом с Python, а не быть клонами MATLAB. Эта страница предназначена для того, чтобы собирать мудрость в отношении различий, главным образом с целью помочь опытным пользователям MATLAB стать опытными пользователями NumPy и SciPy. NumPyProConPage - еще одна страница для любопытных людей, которые думают о принятии Python с NumPy и SciPy вместо MATLAB и хотят увидеть список плюсов и минусов.
Вам также может понравиться pylab, который объединяет numpy и matplotlib в одно пространство имен, поэтому вам не нужно беспокоиться о префиксах np
и plt
я использовал выше. См., Например, википедию.
На этом сайте есть теги, на которые стоит обратить внимание: например, numpy, scipy, matplotlib. Существует также вопрос о Python в stats.se, который вы можете найти релевантным. Если вы заинтересованы в статистике или читаете, записываете и манипулируете табличными данными, вас будут интересовать панды, ответы Python на кадр данных R.
Что касается C++, это отличный язык, но не в той же категории, что и Python. Это не подходящее место для обсуждения своих плюсов и минусов, но, короче говоря, C++ намного ближе к машине, чем Python, и если вы потратите время, вы можете написать высоко оптимизированный код. В Python вы можете быстро запускать код, склеивать отдельные части и легко считывать и записывать данные из любого места, где бы вы ни захотели, но код Python иногда может работать медленно (он похож на Matlab - если вы векторизовать его в numpy быстро, в противном случае оно интерпретируется и медленно). Иногда вы можете ускорить медленный код Python, используя способность Python вызывать функции, определенные в C, см., Например, этот вопрос. (Я оставлю Visual Basic с одной стороны, поскольку это не кажется актуальным.)
Наконец, как отмечалось в комментариях, ответы на любые специфические вопросы предполагали бы знание того, каковы ваши требования, а не только то, что вы хотите сделать, но с кем вы хотите это сделать, и сколько времени и денег вы можете инвестировать.
Да, Python стоит изучать. Это был мой первый основной язык, который я узнал более десяти лет назад. Он сильно использовался в системах Linux, особенно когда системы загружаются. Кроме того, библиотеки для языка очень хорошо развиты. Если вы хотите спроектировать игру, PyGame существует уже давно и делает процесс довольно простым. Если вы хотите запрограммировать для сети Twisted - отличная библиотека, которую они имеют. И их веб-каркас Django - это красота.
Я понял, что Python - это очень английский язык.
Если вы хотите, чтобы вы тоже достигли пика в Ruby. Ruby позволяет много разных стилей программирования. Таким образом, вы можете программировать так же, как и на других языках в Ruby (я строго имею в виду стиль). Также у Ruby есть самые "свободные" ресурсы для обучения и выхода на язык онлайн, который я когда-либо видел.
Я люблю оба языка. Но мой ответ: "Да!". Python - отличный первый язык.
Все зависит от того, что вы хотите сделать, и какого метода вы предпочитаете.
Python отлично подходит для программирования прошивки, например, с помощью Arduino's. C++ отлично подходит для программирования и приложений. Если вы хотите запрограммировать аппаратное обеспечение, перейдите к python. Если вы хотите запрограммировать программное обеспечение, перейдите к C++. Я изучаю C++ и отлично.