MATLAB и Python: инструменты профессионалов

MATLAB и Python: инструменты профессионалов

Мы регулярно слышим о людях (и целых исследовательских группах), которые переходят от Matlab к Python. За последние несколько лет научная экосистема Python быстро развивалась, и Python является привлекательной альтернативой, поскольку он бесплатный, с открытым исходным кодом и он становится все более мощным. Но не стоит говорить что Matlab хуже чем Python, это два разных инструмента, при всем при этом, они очень схожи. Эта статья объяснит различия между этими двумя профессиональными инструментами.

Matlab и Python и их экосистемы

Python по определению является языком программирования. Наиболее распространенная реализация — это в C (также известный как CPython) и это то, что в основном называется «Python». Помимо языка программирования и интерпретатора, Python также состоит из обширной стандартной библиотеки. Эта библиотека предназначена для программирования в целом и содержит модули для конкретных вещей, потоков, сетей, баз данных и т. Д.

Matlab — это коммерческая вычислительная среда и язык программирования. Концепция Matlab относится ко всему пакету, включая IDE. Стандартная библиотека не содержит столько общих функций программирования, но включает матричную алгебру и обширную библиотеку для обработки и построения графиков. Для дополнительной функциональности Mathworks предоставляет наборы инструментов.

Диаграмма, иллюстрирующая различия между Python и Matlab с точки зрения их экосистемы.

Чтобы выполнять научные вычисления в Python, Вам нужны дополнительные пакеты (например, Numpy, Scipy, Matplotlib). Кроме того, вам понадобится IDE. Многие питонщики происходят из среды Linux и используют оболочку Python и редактор (например, vi или Emacs), но люди из Matlab предпочитают многофункциональную IDE. Есть несколько доступных IDE, некоторые из которых бесплатны.

Поскольку Python открыт и бесплатен, другим сторонам очень легко создавать пакеты или другие программные инструменты, расширяющие Python. Можно создавать приложения, используя любую из библиотек графического интерфейса мэра (например, Qt), использовать OpenGL, управлять USB-портом и т. Д. Еще один пример — Cython для повышения скорости работы алгоритмов путем преобразования кода Python в C и PyInstaller для создания автономное приложение из вашего источника.

Каждый пакет разрабатывается другой (но часто пересекающейся) группой людей, которые также являются пользователями пакета. Многие пакеты доступны для разных целей. В этой экосистеме с открытым исходным кодом большинство пакетов управляются несколькими основными разработчиками, но многие пользователи пакетов вносят свой вклад в разработку, сообщая о проблемах, помогая с документацией и внося небольшие улучшения в код.

Проблемы Matlab

Мы не намерены показать Matlab с плохой стороны. Мы любим Matlab сами! Однако мы считаем, что у Matlab есть несколько принципиальных недостатков. Большинство из них вытекают из его коммерческого характера:

  • Алгоритмы являются проприетарными, что означает, что вы не можете видеть код большинства алгоритмов, которые вы используете, и должны верить, что они были реализованы правильно.
  • Matlab довольно дорогой, что означает, что код, написанный на Matlab, может использовать только тот, у кого достаточно средств для покупки лицензии.
  • Естественно, Mathworks накладывает ограничения на переносимость кода, возможность запуска вашего кода на чужом компьютере. Вы можете запустить ваше «скомпилированное» приложение, используя Matlab Component Runtime (MCR), но ваше приложение portbale должно точно соответствовать версии установленной MCR, что может быть неприятно, учитывая, что Matlab выпускает новую версию каждые 6 месяцев.
  • Собственный характер также затрудняет / делает невозможным для 3-х сторон расширить функциональность Matlab

Более того, существуют некоторые другие проблемы, связанные с происхождением Matlabs как пакета манипулирования матрицей:

  • Точка с запятой. Может быть полезно показать результат при вводе кода в консоли, но в сценариях нет никакого смысла в том, что нужно заканчивать строку точкой с запятой, чтобы подавить вывод.
  • Индексация выполняется с помощью фигурных скобок, а не скобок, что затрудняет их различие с вызовом функции.

Преимущества Matlab

Конечно, у Matlab есть и свои преимущества:

  • У него солидное количество функций.
  • Simulink — это продукт, для которого пока нет хорошей альтернативы.
  • Для новичков это может быть проще, поскольку пакет включает в себя все, что вам нужно, а в Python вам нужно установить дополнительные пакеты и интегрированную среду разработки.
  • У него есть большое научное сообщество; это используется во многих университетах (хотя у немногих компаний есть деньги, чтобы купить лицензию).

Преимущества Python

  • Бесплатный.
  • Прекрасный язык программирования. Python был создан, чтобы быть универсальным языком, который легко читать, в то время как Matlab это пакет манипулирования матрицей, к которому они добавили язык программирования. По мере знакомства с Python вы будете поражены тем, насколько хорошо он спроектирован.
  • Мощный. Поскольку он хорошо спроектирован, он легче, чем другие языки, и он запросто превратит ваши идеи в код.
  • Пространства имен. Matlab поддерживает пространства имен для функций, которые вы пишете, но ядро ​​Matlab не имеет пространств имен; каждая функция определена в глобальном пространстве имен. Python работает с модулями, которые нужно импортировать, если вы хотите их использовать.
  • Самоанализ. Это то, что следует из объектно-ориентированной природы Python. Поскольку программа имеет четкую структуру, самоанализ очень прост. Закрытые переменные существуют только по соглашению, поэтому вы можете получить доступ к любой части приложения, включая некоторые внутренние компоненты Python. Конечно, в хорошей практике программирования вы не использовали бы закрытые переменные других классов, но это отлично подходит для отладки!
  • Струнные манипуляции.
  • Переносимость. Поскольку Python бесплатный, ваш код может работать везде. Кроме того, он работает в Windows, Linux и OS X.
  • Определения классов и функций. Функции и классы могут быть определены где угодно. В одном файле (будь то модуль или скрипт) вы можете создать столько функций и классов, сколько захотите. Вы даже можете определить один в командной оболочке, если вы действительно хотите …
  • Отличный инструментарий GUI. С помощью Python вы можете создать внешний интерфейс для вашего приложения, который выглядит хорошо и работает хорошо. Вы можете выбрать любой из основных инструментов GUI, например, Wx или Qt.

MATLAB и Python: инструменты профессионалов: 2 комментария

  1. Считаю что эти два языка программирования — достойны друг друга! Очень мощные инструменты для работы с большими данными.
    Спасибо за статью!

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *