SciPy
SciPy — библиотека для языка программирования Python с открытым исходным кодом, предназначенная для выполнения научных и инженерных расчётов[3].
SciPy | |
---|---|
| |
Тип | Расширение языка Python |
Разработчик | Проект сообщества |
Написана на | Python[2], Си, Фортран, C++ и Cython |
Операционная система | Кроссплатформенное программное обеспечение |
Первый выпуск | 2001 |
Последняя версия | |
Репозиторий | github.com/scipy/scipy |
Лицензия | BSD |
Сайт | scipy.org |
Медиафайлы на Викискладе |
История править
В 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
- Статистические функции.
Расширяемость править
Функциональность библиотеки SciPy можно расширить с помощью других инструментов[9]. Примеры:
- Графика
- Для отрисовки двухмерной предназначено несколько библиотек: Matplotlib (рекомендуется), HippoDraw, Chaco, Biggles, Python Imaging Library, MayaVi (поддерживает трёхмерную графику).
- Оптимизация
- Библиотеки для оптимизации: optimize (модуль встроен в SciPy), OpenOpt (предоставляет больше пакетов и решателей).
- Анализ данных
- Модуль RPy позволяет выполнять анализ данных с помощью языка программирования R.
- База данных
- Библиотека SciPy может взаимодействовать с PyTables[10] — иерархической базой данных, разработанной для управления большими объёмами данных; данные хранятся в файлах формата HDF5.
- Интерактивная оболочка
- IPython — это интерактивная среда для ввода и отладки кода, аналог оболочки MATLAB.
- Символьная математика
- Библиотеки для символьных вычислений: PyDSTool (недоступная ссылка), Symbolic и SymPy.
См. также править
Примечания править
- ↑ Release 1.13.0 — 2024.
- ↑ 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.