SciPy

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
SciPy
Логотип программы SciPy
Скриншот программы SciPy
Пример отрисовки функции Бесселя с пометкой её локальных максимумов
Тип Расширение языка Python
Разработчик Проект сообщества
Написана на Python[2], Си, Фортран, C++ и Cython
Операционная система Кроссплатформенное программное обеспечение
Первый выпуск 2001
Последняя версия 1.6.3[1] (25 апреля 2021)
Лицензия BSD
Сайт scipy.org
Логотип Викисклада Медиафайлы на Викискладе

SciPy — библиотека для языка программирования Python с открытым исходным кодом, предназначенная для выполнения научных и инженерных расчётов[3].

История[править | править код]

В 1990-х годах Python был расширен типом массива для вычислений под названием Numeric (этот пакет в конечном итоге был заменен Трэвисом Олифантом, который написал NumPy[4][5] в 2006 году, соединив Numeric и Numarray.[6]

По состоянию на 2000 год число модулей росло и возрастал интерес к созданию полноценной среды для научных и технических вычислений. В 2001 году Трэвис Олифант, Эрик Джонс и Пиару Петерсон объединили написанный ими код и назвали получившийся пакет SciPy. Вскоре после этого Фернандо Перес выпустил IPython, расширенную интерактивную оболочку, широко используемую в сообществе технических вычислений, а Джон Хантер выпустил первую версию Matplotlib, библиотеки 2D-графиков для вычислений. С тех пор среда SciPy продолжала расти с появлением большего количества пакетов и инструментов для технических вычислений.[7]

Возможности[править | править код]

Целевая аудитория — пользователи продуктов MATLAB и Scilab.

Для визуализации результатов расчётов часто применяется библиотека Matplotlib, являющаяся аналогом средств вывода графики MATLAB.

Библиотека SciPy распространяется по условиям лицензии BSD. Разработчиков финансирует фирма «Enthought».

Структуры данных[править | править код]

Основной структурой данных в SciPy является многомерный массив, реализованный модулем NumPy (более старые версии SciPy использовали модуль Numeric).

Модули[править | править код]

Обзор[править | править код]

Доступные субпакеты:

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

Расширяемость[править | править код]

Функциональность библиотеки SciPy можно расширить с помощью других инструментов[9]. Примеры:

Графика
Для отрисовки двухмерной предназначено несколько библиотек: Matplotlib (рекомендуется), HippoDraw, Chaco, Biggles, Python Imaging Library, MayaVi (поддерживает трёхмерную графику).
Оптимизация
Библиотеки для оптимизации: optimize (модуль встроен в SciPy), OpenOpt (предоставляет больше пакетов и решателей).
Анализ данных
Модуль RPy позволяет выполнять анализ данных с помощью языка программирования R.
База данных
Библиотека SciPy может взаимодействовать с PyTables[10] — иерархической базой данных, разработанной для управления большими объёмами данных; данные хранятся в файлах формата HDF5.
Интерактивная оболочка
IPython — это интерактивная среда для ввода и отладки кода, аналог оболочки MATLAB.
Символьная математика
Библиотеки для символьных вычислений: PyDSTool (недоступная ссылка), Symbolic и SymPy.

См. также[править | править код]

Примечания[править | править код]

  1. [1]
  2. The scipy Open Source Project on Open Hub: Languages Page — 2006.
  3. Pauli Virtanen, Ralf Gommers, Travis E. Oliphant, Matt Haberland, Tyler Reddy. SciPy 1.0: fundamental algorithms for scientific computing in Python (англ.) // Nature Methods. — 2020. — March (vol. 17, iss. 3). — P. 261–272. — ISSN 1548-7105. — doi:10.1038/s41592-019-0686-2. — PMID 32015543. Архивировано 3 февраля 2021 года.
  4. History of SciPy.
  5. Guide to NumPy.
  6. Andreas C. Müller, Sarah Guido. Introduction to Machine Learning with Python. — O'Reilly Media, 2016.
  7. Python for Scientists and Engineers.
  8. SourceForge.net: SciPy: Scientific Library for Python: Files.
  9. Topical Software
  10. PyTables // SourceForge.net.

Литература[править | править код]

  • Blanco-Silva, F.J. Learning SciPy for Numerical and Scientific Computing. — Packt Publishing, Limited, 2013. — 150 p. — ISBN 9781782161639.

Ссылки[править | править код]