Распределения и среды Python для научных вычислений

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

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

  • SciPy
  • Spyderlib
  • PythonXY
  • Распространение Python
  • шалфей

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

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

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

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

3 Solutions collect form web for “Распределения и среды Python для научных вычислений”

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

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

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

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

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

Spyder – это настольная IDE (основанная на 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, «скрытый под капотом», но вы можете это предпочесть.

Что касается менее важной части вопроса:

  • Anaconda – еще одно замечательное полнофункциональное распределение (похожее на Enthought и Sage), идущее с IPython, Spyder … Это также позволяет вам легко переключаться на версии / среды python.
  • PyCharm – еще одна заметная среда разработки, которую я обычно использую.

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

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

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

  • Методы ввода уравнений при программировании в C / C ++, Python или Fortran
  • Сохранение данных научных данных моделирования, Mongodb + HDF5?
  • Python - лучший язык программирования в мире.