среда, 26 мая 2010 г.

Python + NamPy и SciPy

Появилась интересная задача. Приглядываюсь чем бы её решить...

NumPy — это расширение языка Python, добавляющее поддержку больших многомерных массивов и матриц, вместе с большой библиотекой высокоуровневых математических функций для операций с этими массивами. Предшественник NumPy, Numeric, был изначально создан Jim Hugunin. NumPy открытое программное обеспечение и имеет много разработчиков.


SciPy — это открытая библиотека высококачественных научных инструментов для языка программирования Python. SciPy содержит модули для оптимизации, интегрирования, специальных функций, обработки сигналов,обработки изображений, генетических алгоритмов, решения обыкновенных дифференциальных уравнений, и других задач обычно решаемых в науке и при инженерной разработке. Библиотека разрабатывается для той же аудитории что MATLAB и Scilab. Для визуализации при использовании SciPy часто применяют библиотекуMatplotlib, являющуюся аналогом средств вывода графики MATLAB. В настоящее время SciPy распространяется под лицензией BSD и его разработчики спонсируются Enthought.



Доступные субпакеты
  • constants: Физические константы и коэффициенты пересчёта (с версии 0.7.0)
  • cluster: Векторное квантование
  • fftpack: Дискретные алгоритмы преобразования Фурье
  • integrate: Инструменты для интегрирования
  • interpolate: Инструменты для интерполяции
  • io: Ввод/вывод данных
  • lib: Врапперы Python для внешних библиотек
  • linalg: Линейная алгебра
  • misc: Разные утилиты
  • optimize: Средства оптимизации
  • sandbox: Экспериментальный код
  • signal: Обработка сигналов
  • sparse: Поддержка разреженных матриц
  • special: Специальные функции
  • stats: Статистические функции
  • weave: Позволяет включение кода C/C++ внутри кода Python


Дополнительная функциональность

Основной функционал SciPy расширяется за счёт других инструментов. Например:
  • Графика. На данный момент рекомендованным пакетом для отрисовки двухмерной графики является Matplotlib, тем не менее существует множество других, например HippoDraw, Chaco, и Biggles. Также популярными являются Python Imaging Library и MayaVi (для 3D визуализации)
  • Оптимизация. Хотя SciPy имеет свой пакет для оптимизации, OpenOpt имеет доступ к большему количеству оптимизационных пакетов и решателей
  • Продвинутый анализ данных. При помощи RPy, SciPy обеспечивает интерфейс к статистическому пакету R предназначенному для сложного анализа данных.
  • База данных. SciPy может взимодействовать с  PyTables, иерархической базой данных разработанной для эффективного управления большими объёмами данных на основе HDF5.
  • Интерактивная оболочка. IPython это интерактивная среда которая обеспечивает дебаггинг и создание кода в стиле близком к MATLAB.
  • Символьная математика. Существует несколько библиотек для Python, такие как PyDSTo, Symbolic и SymPy  которые позволяют работать с символьной математикой.