Введение

Библиотека Python с открытым исходным кодом для научных вычислений

SciPy (произносится /'//s//aɪ//p//aɪ/ "сай пай") – это бесплатная библиотека Python с открытым исходным кодом, используемая для научных и технических вычислений. SciPy включает модули для оптимизации, линейной алгебры, интегрирования, интерполяции, специальных функций, быстрого преобразования Фурье (FFT), обработки сигналов и изображений, решения обыкновенных дифференциальных уравнений (ODE) и других задач, часто встречающихся в науке и инженерии. SciPy также является серией конференций для пользователей и разработчиков этих инструментов: SciPy (в США), EuroSciPy (в Европе) и SciPy.in (в Индии). Компания Enthought инициировала конференцию SciPy в США и продолжает спонсировать многие международные конференции, а также поддерживать веб-сайт SciPy. Библиотека SciPy в настоящее время распространяется под лицензией BSD, а её разработка спонсируется и поддерживается открытым сообществом разработчиков. Она также поддерживается NumFOCUS – общественным фондом, поддерживающим воспроизводимость и доступность научных исследований.

Структуры данных

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

История

В 1990-х годах Python был расширен за счет добавления типа массива для численных вычислений под названием Numeric. (Этот пакет со временем был заменен NumPy, разработанным Трэвисом Олифантом в 2006 году как объединение Numeric и Numarray, а сам Numarray был начат в 2001 году.) К 2000 году наблюдался рост числа расширений и возрастающий интерес к созданию полноценной среды для научных и технических вычислений. В 2001 году Трэвис Олифант, Эрик Джонс и Пиру Петерсон объединили написанный ими код и назвали полученный пакет SciPy. Новый пакет предоставлял стандартный набор распространенных численных операций, основанный на структуре данных массива Numeric. Вскоре после этого Фернандо Перес выпустил IPython – расширенную интерактивную оболочку, широко используемую в сообществе технических вычислений, а Джон Хантер – первую версию Matplotlib, библиотеки для двумерной визуализации данных в технических вычислениях. С тех пор среда SciPy продолжала развиваться, пополняясь новыми пакетами и инструментами для технических вычислений.

Научный Python против НаучногоPython

В научной литературе SciPy иногда называют "Научный Python (SciPy)". Это неверно: официальное название проекта – просто "SciPy". Более того, расшифровка "SciPy" как "Scientific Python" может привести к путанице с "ScientificPython" – проектом, возглавляемым Конрадом Хинсеном из Орлеанского университета, который был активен с 1995 по 2014 год.