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 — которые позволяют работать с символьной математикой.