Python дистрибутивы и среды для научных вычислений - PullRequest
21 голосов
/ 16 июля 2011

Я прошу прощения заранее, если этот вопрос слишком широк.Я родом из мира MATLAB и имею сравнительно небольшой опыт работы с Python.

Потратив некоторое время на чтение о нескольких средах и дистрибутивах на основе Python для научных вычислений, я чувствую, что все еще не до конца понимаю ландшафт решений или точную взаимосвязь между некоторыми известными пакетами, включая:

Более конкретно:

  • Предоставляет ли какой-либо из перечисленных пакетов аналогичную функциональность?Они дополняют друг друга?
  • Включает ли установка какого-либо из них или требует установки какого-либо другого?Если да, то какие из них включают или требуют какие?

Менее важно, есть ли какие-либо другие пакеты, аналогичные приведенным выше, которые предоставляют аналогичные функции?

Заранее спасибо

Ответы [ 3 ]

33 голосов
/ 16 июля 2011

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

Основными необходимыми модулями для научных вычислений в Python являются Numpy, Matplotlib, SciPy, а если вы делаете 3D-черчение, то Mayavi/VTK. Все эти модули зависят от Numpy.

Numpy Реализует новый тип массива, который ведет себя подобно массивам MATLAB (то есть, быстрые векторные вычисления). Он также определяет загрузку функций для выполнения этих вычислений, которые обычно называются так же, как аналогичные функции в MATLAB.

Matplotlib Позволяет выполнять двухмерное построение с командами, очень похожими на MATLAB. Matplotlib также определяет pylab , который является модулем, который - с помощью одного импорта - переносит большинство функций Numpy и Matplotlib в глобальное пространство имен. Это полезно для быстрых / интерактивных сценариев, когда вы не хотите набирать много префиксов пространства имен.

SciPy - это набор модулей Python, расположенных под зонтиком SciPy, которые полезны для ученых. Процедуры установки поставляются в модулях SciPy. Numpy является частью Scipy.

Spyder - это десктопная среда разработки (на основе QT), которая свободно пытается эмулировать MATLAB IDE. Он является частью дистрибутива Python-XY.

IPython предоставляет улучшенную интерактивную оболочку Python, которая полезна для тестирования кода, запуска ваших сценариев и взаимодействия с результатами. Теперь его можно использовать как для веб-интерфейса, так и для традиционной консоли. Он также встроен в IDE Spyder.

Распределения

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

Python-XY , WinPython , Enthought и в последнее время Anaconda - это все полные дистрибутивы пакетов, которые включите все основные модули, хотя Enthought не поставляется с Spyder.

Sage - это еще одна среда программирования, которая обслуживается через Интернет или через командную строку, а также поставляется в виде полного пакета, включающего множество других модулей. Традиционно это был образ VMWare, основанный на установке Linux. Хотя вы пишете Python в среде Sage, он немного отличается от обычного программирования на Python, он в некотором роде определяет свой собственный язык и методологию, основанную на Python.

Если вы используете Windows, я бы установил WinPython. Он устанавливает все, что вам нужно, в том числе Scipy и Spyder (который является лучшей заменой для MATLAB для Python IMHO), и поскольку он спроектирован как автономный, он не будет мешать другим установкам Python, которые вы можете иметь в своей системе. Если вы работаете в OSX, Enthought, вероятно, является лучшим способом - Spyder может быть установлен отдельно, например, с помощью. MacPorts. Для Linux вы можете установить компоненты (Numpy, SciPy, Spyder, Matplotlib) отдельно.

Мне лично не нравится, как Sage работает с Python, «спрятанным под капотом», но вы можете предпочесть это.

4 голосов
/ 06 мая 2014

По поводу менее важной части вопроса:

  • Anaconda - еще один известный полнофункциональный дистрибутив (похожий на Enthought и Sage), поставляемый с IPython, Spyder ... Он также позволяет вам легко переключать версии / среды Python.
  • PyCharm - еще одна известная IDE, которую я обычно использую.
2 голосов
/ 06 ноября 2012

Эта ссылка может быть полезной: https://www.cfa.harvard.edu/~ebresser/python/

Это страница астрофизика в Гарварде. Это дает представление о том, что кто-то переключается с IDL ITT-VIS на python в OS-X (но большинство советов также работает в других операционных системах).

РЕДАКТИРОВАТЬ: Кажется, страница была удалена. Альтернативное хорошее введение в python для ученого / инженера находится в этом документе (большое предупреждение в формате PDF): http://stsdas.stsci.edu/perry/pydatatut.pdf Надеюсь, что этот не будет снят!

...