Подтвердить что ты не робот

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

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

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

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

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

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

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

4b9b3361

Ответ 1

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

Основными необходимыми модулями для научных вычислений в Python являются Numpy, Matplotlib, SciPy, и если вы делаете трехмерное построение, тогда 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, скрытый под капотом, но вы можете предпочесть это.

Ответ 2

Относительно менее важной части вопроса:

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

Ответ 3

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

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

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