Примечания к выпуску SciPy 0.14.0#
SciPy 0.14.0 — это результат 8 месяцев напряженной работы. Он содержит много новых функций, множество исправлений ошибок, улучшенное покрытие тестами и лучшую документацию. В этом выпуске было несколько устареваний и изменений API, которые задокументированы ниже. Все пользователи рекомендуется обновиться до этого выпуска, так как в нем большое количество исправлений ошибок и оптимизаций. Более того, наше внимание разработки теперь переключится на выпуски исправлений ошибок в ветке 0.14.x и на добавление новых функций в ветке master.
Для этого выпуска требуется Python 2.6, 2.7 или 3.2-3.4 и NumPy 1.5.1 или выше.
Новые возможности#
scipy.interpolate улучшения#
Новая функция-обёртка scipy.interpolate.interpn для интерполяции на регулярных сетках была добавлена. interpn поддерживает линейную и интерполяцию ближайшего соседа
в произвольных размерностях и сплайн-интерполяцию в двух
измерениях.
Более быстрые реализации кусочно-полиномиальных функций в степенном и Бернштейновском
полиномиальных базисах были добавлены как scipy.interpolate.PPoly и
scipy.interpolate.BPoly. Новым пользователям следует использовать их вместо
scipy.interpolate.PiecewisePolynomial.
scipy.interpolate.interp1d теперь принимает немонотонные входные данные и сортирует их.
Если производительность критична, сортировку можно отключить с помощью нового
assume_sorted ключевое слово.
Функциональность для вычисления производных двумерных сплайнов в
scipy.interpolate был добавлен.
Новый класс scipy.interpolate.Akima1DInterpolator реализует схему кусочно-кубической полиномиальной интерполяции, разработанную Х. Акимой.
Функциональность для быстрой интерполяции на регулярных, неравномерно распределенных сетках
в произвольных измерениях была добавлена как
scipy.interpolate.RegularGridInterpolator .
scipy.linalg улучшения#
Новая функция scipy.linalg.dft вычисляет матрицу дискретного преобразования Фурье.
Функция оценки числа обусловленности для матричной экспоненты,
scipy.linalg.expm_cond, был добавлен.
scipy.optimize улучшения#
Набор тестов для optimize, который можно запустить с помощью optimize.bench(),
был добавлен.
scipy.optimize.curve_fit теперь имеет более управляемую оценку ошибки через
absolute_sigma ключевое слово.
Поддержка передачи пользовательских методов минимизации в optimize.minimize()
и optimize.minimize_scalar() был добавлен, в настоящее время особенно полезен
для комбинирования optimize.basinhopping() с пользовательскими процедурами локальной оптимизации.
scipy.stats улучшения#
Новый класс scipy.stats.multivariate_normal с функциональностью для многомерных нормальных случайных величин была добавлена.
Много работы над scipy.stats Работа над фреймворком распределений завершена.
Расчеты моментов (в основном асимметрии и эксцесса) исправлены и проверены, все
примеры теперь запускаемы, и многие небольшие улучшения точности и производительности
для отдельных распределений были объединены.
Новая функция scipy.stats.anderson_ksamp вычисляет k-выборочный тест Андерсона-Дарлинга для нулевой гипотезы о том, что k выборок происходят из одной и той же родительской совокупности.
scipy.signal улучшения#
scipy.signal.iirfilter и связанные функции для проектирования фильтров Баттерворта,
Чебышева, эллиптических и Бесселя IIR теперь используют полюсно-нулевой формат
("zpk") внутри вместо преобразований в формат числитель/знаменатель.
Точность создаваемых фильтров, особенно высокого порядка, значительно
улучшилась в результате.
Фильтр Савицкого-Голея был добавлен с новыми функциями
scipy.signal.savgol_filter и scipy.signal.savgol_coeffs.
Новая функция scipy.signal.vectorstrength вычисляет векторную силу,
меру фазовой синхронизации, для набора событий.
scipy.special улучшения#
Функции scipy.special.boxcox и scipy.special.boxcox1p, которые вычисляют преобразование Бокса-Кокса, были добавлены.
scipy.sparse улучшения#
Значительное улучшение производительности при индексировании CSR, CSC и DOK.
При использовании Numpy >= 1.9 (который будет выпущен в MM 2014), разреженные матрицы работают корректно при передаче в аргументы
np.dot,np.multiplyи других универсальных функций. В более ранних версиях Numpy и Scipy результаты таких операций не определены и обычно неожиданны.Разреженные матрицы больше не ограничены
2^31ненулевых элементов. Они автоматически переключаются на использование 64-битного типа данных индекса для матриц, содержащих больше элементов. Пользовательский код, написанный с предположением, что разреженные матрицы используют int32 как тип данных индекса, продолжит работать, за исключением таких больших матриц. Код, работающий с большими матрицами, должен принимать индексы либо int32, либо int64.
Устаревшие функции#
anneal#
Функция глобальной минимизации scipy.optimize.anneal устарела. Все пользователи должны использовать scipy.optimize.basinhopping функция вместо.
scipy.stats#
randwcdf и randwppf функции устарели. Всем пользователям следует использовать
специфичные для распределения rvs методы вместо этого.
Псевдонимы расчёта вероятности zprob, fprob и ksprob являются
устаревшими. Вместо этого используйте sf методы соответствующих распределений
или special функции напрямую.
scipy.interpolate#
PiecewisePolynomial класс устарел.
Обратно несовместимые изменения#
scipy.special.lpmn#
lpmn больше не принимает комплексные аргументы. Новая функция
clpmn с равномерным комплексным аналитическим поведением была добавлена, и
её следует использовать вместо этого.
scipy.sparse.linalg#
Собственные векторы в случае обобщенной проблемы собственных значений нормализуются к единичным векторам в 2-норме, а не следуют соглашению нормализации LAPACK.
Устаревшая обёртка UMFPACK в scipy.sparse.linalg был удалён из-за
проблем с лицензией и установкой. Если доступен, scikits.umfpack все еще используется прозрачно в spsolve и factorized функций. В противном случае,
в этих функциях вместо этого используется SuperLU.
scipy.stats#
Устаревшие функции glm, oneway и cmedian были удалены
из scipy.stats.
stats.scoreatpercentile теперь возвращает массив вместо списка
процентилей.
scipy.interpolate#
API для вычисления производных монотонной кусочно-интерполяции изменился: если p является PchipInterpolator объект, p.derivative(der)
возвращает вызываемый объект, представляющий производную p. Для производных на месте
используйте второй аргумент функции __call__ method:
p(0.1, der=2) вычисляет вторую производную от p в x=0.1.
Метод p.derivatives был удален.