Примечания к выпуску SciPy 0.10.0#

SciPy 0.10.0 — результат 8 месяцев напряжённой работы. Он содержит множество новых функций, множество исправлений ошибок, улучшенное покрытие тестами и лучшую документацию. В этом выпуске было ограниченное количество устареваний и обратно несовместимых изменений, которые задокументированы ниже. Всем пользователям рекомендуется обновиться до этого выпуска, так как в нём большое количество исправлений ошибок и оптимизаций. Более того, наше внимание разработчиков теперь переключится на выпуски исправлений ошибок в ветке 0.10.x и на добавление новых функций в основной ветке разработки.

Основные моменты выпуска:

  • Поддержка Bento в качестве опциональной системы сборки.

  • Поддержка обобщенных задач на собственные значения и всех режимов сдвига-инверсии, доступных в ARPACK.

Для этого выпуска требуется Python 2.4-2.7 или 3.1- и NumPy 1.5 или выше.

Новые возможности#

Bento: новая опциональная система сборки#

Scipy теперь можно собрать с BentoBento имеет некоторые полезные функции, такие как параллельная сборка и частичная пересборка, которые невозможны в стандартной системе сборки (distutils). Инструкции по использованию см. в BENTO_BUILD.txt в корневом каталоге SciPy.

В настоящее время Scipy имеет три системы сборки: distutils, numscons и bento. Numscons устарел и планируется, скорее всего, будет удален в следующем релизе.

Обобщенные и сдвигово-инверсные задачи на собственные значения в scipy.sparse.linalg#

Функции решения разреженной проблемы собственных значений scipy.sparse.eigs/eigh теперь поддерживают обобщенные задачи на собственные значения и все режимы shift-invert, доступные в ARPACK.

Дискретно-временные линейные системы (scipy.signal)#

Поддержка моделирования дискретно-временных линейных систем, включая scipy.signal.dlsim, scipy.signal.dimpulse, и scipy.signal.dstep, был добавлен в SciPy. Преобразование линейных систем из непрерывного времени в дискретное также представлено через scipy.signal.cont2discrete функция.

Улучшения в scipy.signal#

Периодограмма Ломба-Скаргла теперь может быть вычислена с помощью новой функции scipy.signal.lombscargle.

Функция фильтрации вперёд-назад scipy.signal.filtfilt теперь может фильтровать данные по заданной оси n-мерного массива numpy. (Ранее он обрабатывал только одномерный массив.) Добавлены опции для большего контроля над тем, как данные расширяются перед фильтрацией.

Проектирование КИХ-фильтра с scipy.signal.firwin2 теперь имеет опции для создания фильтров типа III (ноль на нулевой и частоте Найквиста) и IV (ноль на нулевой частоте).

Дополнительные параметры разложения (scipy.linalg)#

Ключевое слово sort было добавлено в процедуру разложения Шура (scipy.linalg.schur) для разрешения сортировки собственных значений в результирующей форме Шура.

Дополнительные специальные матрицы (scipy.linalg)#

Функции hilbert и invhilbert были добавлены в scipy.linalg.

Улучшения в scipy.stats#

  • The односторонняя форма точного теста Фишера теперь также реализован в stats.fisher_exact.

  • Функция stats.chi2_contingency для вычисления критерия хи-квадрат независимости факторов в таблице сопряжённости был добавлен, вместе с связанными вспомогательными функциями stats.contingency.margins и stats.contingency.expected_freq.

Улучшения в scipy.special#

Функции logit(p) = log(p/(1-p)) и expit(x) = 1/(1+exp(-x)) были реализованы как scipy.special.logit и scipy.special.expit соответственно.

Базовая поддержка формата файлов Harwell-Boeing для разреженных матриц и для вещественных матриц#

Чтение и запись поддерживаются через простой API на основе функций, а также более полный API для управления форматом чисел. Функции можно найти в scipy.sparse.io.

Поддерживаются следующие возможности:

  • Чтение и запись разреженных матриц в формате CSC

  • Поддерживаются только вещественные, симметричные, собранные матрицы (формат RUA)

Устаревшие функции#

scipy.maxentropy#

Модуль maxentropy не поддерживается, редко используется и плохо функционировал в течение нескольких релизов. Поэтому он объявлен устаревшим в этом релизе и будет удалён в scipy 0.11. Логистическая регрессия в scikits.learn является хорошей альтернативой для этой функциональности. scipy.maxentropy.logsumexp функция была перемещена в scipy.misc.

scipy.lib.blas#

Существуют аналогичные обёртки BLAS в scipy.linalg и scipy.lib. Эти теперь были объединены как scipy.linalg.blas, и scipy.lib.blas устарело.

Система сборки Numscons#

Система сборки numscons заменяется на Bento и будет удалена в одном из следующих выпусков scipy.

Обратно несовместимые изменения#

Устаревшее название invnorm был удален из scipy.stats.distributions, это распределение доступно как invgauss.

Следующие устаревшие нелинейные решатели из scipy.optimize были удалены:

- ``broyden_modified`` (bad performance)
- ``broyden1_modified`` (bad performance)
- ``broyden_generalized`` (equivalent to ``anderson``)
- ``anderson2`` (equivalent to ``anderson``)
- ``broyden3`` (obsoleted by new limited-memory broyden methods)
- ``vackar`` (renamed to ``diagbroyden``)

Прочие изменения#

scipy.constants была обновлена с константами CODATA 2010.

__all__ словари были добавлены во все модули, что очистило пространства имён (особенно полезно для интерактивной работы).

В документацию добавлен раздел API, содержащий рекомендуемые правила импорта и указывающий, какие подмодули являются публичными, а какие нет.

Авторы#

Этот выпуск содержит работу следующих людей (внесших как минимум один патч в этот выпуск, имена в алфавитном порядке):

  • Джефф Армстронг +

  • Мэтью Бретт

  • Lars Buitinck +

  • David Cournapeau

  • FI$H 2000 +

  • Michael McNeil Forbes +

  • Matty G +

  • Кристоф Голке

  • Ralf Gommers

  • Yaroslav Halchenko

  • Чарльз Харрис

  • Thouis (Ray) Jones +

  • Chris Jordan-Squire +

  • Robert Kern

  • Chris Lasher +

  • Wes McKinney +

  • Трэвис Олифант

  • Fabian Pedregosa

  • Josef Perktold

  • Томас Робитай +

  • Pim Schellart +

  • Anthony Scopatz +

  • Skipper Seabold +

  • Fazlul Shahriar +

  • Дэвид Симча +

  • Скотт Синклер +

  • Андрей Смирнов +

  • Collin RM Stocks +

  • Мартин Тайхманн +

  • Джейк Вандерплас +

  • Гаэль Варуко +

  • Pauli Virtanen

  • Stefan van der Walt

  • Warren Weckesser

  • Mark Wiebe +

Всего 35 человек внесли вклад в этот релиз. Люди со знаком «+» рядом с именами внесли патч впервые.