SciPy (SciPy)
SciPy | |||
---|---|---|---|
![]() | |||
![]() Пример отрисовки функции Бесселя с пометкой её локальных максимумов | |||
Тип | Расширение языка Python | ||
Разработчик | Проект сообщества | ||
Написана на | Python[4], Си, Фортран, C++ и Cython | ||
Операционная система | Кроссплатформенное программное обеспечение | ||
Первый выпуск | 2001 | ||
Последняя версия |
|
||
Репозиторий | github.com/scipy/scipy | ||
| |||
Лицензия | BSD | ||
Сайт | scipy.org | ||
![]() |
SciPy — библиотека для языка программирования Python с открытым исходным кодом, предназначенная для выполнения научных и инженерных расчётов[5].
История
[править | править код]В 1990-х годах Python был расширен типом массива для вычислений под названием Numeric (этот пакет в конечном итоге был заменен Трэвисом Олифантом, который написал NumPy[6][7] в 2006 году, соединив Numeric и Numarray.[8]
По состоянию на 2000 год число модулей росло и возрастал интерес к созданию полноценной среды для научных и технических вычислений. В 2001 году Трэвис Олифант, Эрик Джонс и Пиару Петерсон объединили написанный ими код и назвали получившийся пакет SciPy. Вскоре после этого Фернандо Перес выпустил IPython, расширенную интерактивную оболочку, широко используемую в сообществе технических вычислений, а Джон Хантер выпустил первую версию Matplotlib, библиотеки 2D-графиков для вычислений. С тех пор среда SciPy продолжала расти с появлением большего количества пакетов и инструментов для технических вычислений.[9]
Возможности
[править | править код]- поиск минимумов и максимумов функций;
- вычисление интегралов функций;
- поддержка специальных функций;
- обработка сигналов;
- обработка изображений;
- работа с генетическими алгоритмами;
- решение обыкновенных дифференциальных уравнений;
- и др.
Целевая аудитория — пользователи продуктов MATLAB и Scilab.
Для визуализации результатов расчётов часто применяется библиотека Matplotlib, являющаяся аналогом средств вывода графики MATLAB.
Библиотека SciPy распространяется по условиям лицензии BSD. Разработчиков финансирует фирма «Enthought».
Структуры данных
[править | править код]Основной структурой данных в SciPy является многомерный массив, реализованный модулем NumPy (более старые версии SciPy использовали модуль Numeric).
Модули
[править | править код]Обзор
[править | править код]Доступные субпакеты:
- constants
- Физические константы и коэффициенты пересчёта (с версии 0.7.0[10]).
- cluster
- Векторное квантование.
- fftpack
- Дискретные алгоритмы преобразования Фурье.
- integrate
- Инструменты для интегрирования.
- interpolate
- Инструменты для интерполяции.
- io
- Ввод-вывод данных.
- lib
- Работа со сторонними библиотеками.
- linalg
- Линейная алгебра.
- misc
- Разное.
- optimize
- Средства оптимизации.
- sandbox
- Экспериментальный код.
- signal
- Обработка сигналов.
- sparse
- Поддержка разреженных матриц.
- special
- Специальные функции.
- stats
- Статистические функции.
Расширяемость
[править | править код]Функциональность библиотеки SciPy можно расширить с помощью других инструментов[11]. Примеры:
- Графика
- Для отрисовки двухмерной предназначено несколько библиотек: Matplotlib (рекомендуется), HippoDraw, Chaco, Biggles, Python Imaging Library, MayaVi (поддерживает трёхмерную графику).
- Оптимизация
- Библиотеки для оптимизации: optimize (модуль встроен в SciPy), OpenOpt (предоставляет больше пакетов и решателей).
- Анализ данных
- Модуль RPy позволяет выполнять анализ данных с помощью языка программирования R.
- База данных
- Библиотека SciPy может взаимодействовать с PyTables[12] — иерархической базой данных, разработанной для управления большими объёмами данных; данные хранятся в файлах формата HDF5.
- Интерактивная оболочка
- IPython — это интерактивная среда для ввода и отладки кода, аналог оболочки MATLAB.
- Символьная математика
- Библиотеки для символьных вычислений: PyDSTool (недоступная ссылка), Symbolic и SymPy.
См. также
[править | править код]Примечания
[править | править код]- ↑ Release 1.14.1 — 2024.
- ↑ 1 2 3 4 5 6 7 https://docs.scipy.org/doc/scipy/reference/io.html#module-scipy.io
- ↑ 1 2 https://numpy.org/devdocs/reference/routines.io.html
- ↑ The scipy Open Source Project on Open Hub: Languages Page — 2006.
- ↑ 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 года.
- ↑ History of SciPy . Дата обращения: 21 сентября 2021. Архивировано 9 июля 2015 года.
- ↑ Guide to NumPy . Дата обращения: 21 сентября 2021. Архивировано 19 октября 2013 года.
- ↑ Andreas C. Müller, Sarah Guido. Introduction to Machine Learning with Python. — O'Reilly Media, 2016. — ISBN 9781449369415. Архивная копия от 6 сентября 2021 на Wayback Machine Источник . Дата обращения: 21 сентября 2021. Архивировано из оригинала 6 сентября 2021 года.
- ↑ Python for Scientists and Engineers . Дата обращения: 21 сентября 2021. Архивировано 19 февраля 2019 года.
- ↑ SourceForge.net: SciPy: Scientific Library for Python: Files Архивная копия от 8 ноября 2012 на Wayback Machine.
- ↑ Topical Software . Дата обращения: 26 сентября 2015. Архивировано 16 января 2013 года.
- ↑ PyTables Архивная копия от 14 августа 2015 на Wayback Machine // SourceForge.net.
Литература
[править | править код]- Нуньес-Иглесиас Х., Уолт Ш., Дэшноу Х. Элегантный SciPy = Elegant SciPy. — ДМК Пресс, 2018. — 266 с. — ISBN 978-5-97060-6001.
- Bressert, E. SciPy and NumPy. — O'Reilly, 2012. — 57 p. — ISBN 9781449305468.
- Blanco-Silva, F.J. Learning SciPy for Numerical and Scientific Computing. — Packt Publishing, Limited, 2013. — 150 p. — ISBN 9781782161639.