Примечания к выпуску 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, содержащий рекомендуемые правила импорта и указывающий, какие подмодули являются публичными, а какие нет.