Примечания к выпуску SciPy 1.0.0#
Мы с огромным удовольствием объявляем о выпуске SciPy 1.0, спустя 16 лет после того, как версия 0.1 увидела свет. Это был долгий, продуктивный путь до этого момента, и мы ожидаем множество новых захватывающих функций и выпусков в будущем.
Почему 1.0 сейчас?#
Номер версии должен отражать зрелость проекта — и SciPy была зрелой и стабильной библиотекой, которая уже давно широко используется в производственных условиях. С этой точки зрения, номер версии 1.0 давно назрел.
Некоторые ключевые цели проекта, как технические (например, колеса для Windows и непрерывная интеграция), так и организационные (структура управления, кодекс поведения и дорожная карта), были недавно достигнуты.
Многие из нас немного перфекционисты, и поэтому неохотно называют что-то «1.0», потому что это может подразумевать, что оно «закончено» или «мы на 100% довольны им». Это нормально для многих проектов с открытым исходным кодом, однако это не делает это правильным. Мы признаем себе, что это не идеально, и остались некоторые пыльные уголки (что, вероятно, всегда будет так). Несмотря на это, SciPy чрезвычайно полезен для своих пользователей, в среднем имеет высококачественный код и документацию, а также дает гарантии стабильности и обратной совместимости, которые подразумевает метка 1.0.
Немного истории и перспектив#
2001: первый релиз SciPy
2005: переход к NumPy
2007: создание scikits
2008: добавлен модуль scipy.spatial и первый код на Cython
2010: переход на полугодовой цикл выпуска релизов
2011: Разработка SciPy переходит на GitHub
2011: Поддержка Python 3
2012: добавление модуля разреженных графов и унифицированного интерфейса оптимизации
2012: удаление scipy.maxentropy
2013: непрерывная интеграция с TravisCI
2015: добавление интерфейса Cython для BLAS/LAPACK и набора тестов
2017: добавление унифицированного C API с scipy.LowLevelCallable; удаление scipy.weave
2017: выпуск SciPy 1.0
Pauli Virtanen является Benevolent Dictator For Life (BDFL) SciPy. Он говорит:
Честно говоря, мы могли бы выпустить SciPy 1.0 давным-давно, поэтому я рад, что мы делаем это наконец-то. У проекта долгая история, и за эти годы он созрел и как программный проект. Я считаю, что он хорошо доказал свою ценность, чтобы заслужить номер версии, начинающийся с единицы.
С момента своего создания более 15 лет назад SciPy в основном разрабатывался учёными и для учёных, чтобы предоставить набор базовых инструментов, которые им необходимы. Со временем состав активных участников разработки претерпел некоторые изменения, и мы эволюционировали в сторону более системного подхода к разработке. Тем не менее, эта основная движущая сила осталась прежней, и я думаю, что она продолжит двигать проект вперёд в будущем. Это хорошо, поскольку вскоре после версии 1.0 выйдет версия 1.1.
Трэвис Олифант является одним из создателей SciPy. Он говорит:
Для меня большая честь написать поздравление разработчикам SciPy и всему сообществу SciPy по поводу выпуска SciPy 1.0. Этот выпуск представляет собой мечту многих, которая терпеливо преследовалась стойкой группой пионеров почти 2 десятилетия. Усилия были широкими и последовательными за это время со стороны многих сотен людей. От первоначальных обсуждений до усилий по кодированию и упаковке, усилий по документации, обширных конференций и построения сообщества, усилия SciPy были глобальным феноменом, в котором было привилегией участвовать.
Идея SciPy уже была в умах многих людей в 1997 году, когда я впервые присоединился к сообществу Python как молодой аспирант, только что влюбившийся в выразительность и расширяемость Python. Интернет только начинал объединять единомышленников-математиков и ученых в зарождающихся электронно-связанных сообществах. В 1998 году состоялась активная дискуссия на matrix-SIG, списке рассылки python с участием таких людей, как Пол Барретт, Джо Харрингтон, Перри Гринфилд, Пол Дюбуа, Конрад Хинсен, Дэвид Ашер и других. Эта дискуссия побудила меня в 1998 и 1999 годах откладывать свою докторскую диссертацию и тратить много времени на написание расширений для Python, которые в основном оборачивали проверенные в боях коды Fortran и C, делая их доступными для пользователей Python. Эта работа привлекла помощь других, таких как Роберт Керн, Перу Петерсон и Эрик Джонс, которые присоединили свои усилия к моим в 2000 году, так что к 2001 году был готов первый релиз SciPy. Это было задолго до того, как Github упростил сотрудничество и вклад других, и команда 'patch' и электронная почта были тем, как вы помогали проекту улучшаться.
С тех пор сотни людей потратили огромное количество времени на улучшение библиотеки SciPy, и сообщество вокруг этой библиотеки значительно выросло. Я перестал активно участвовать в разработке библиотеки SciPy примерно в 2010 году. К счастью, в то время Пол Виртанен и Ральф Гоммерс подхватили темп разработки при поддержке десятков других ключевых участников, таких как Давид Курнапо, Евгений Буровский, Йозеф Перктольд и Уоррен Векессер. Хотя за последние 7 лет я мог только издалека восхищаться развитием SciPy, я никогда не терял своей любви к проекту и концепции разработки, управляемой сообществом. Я до сих пор движим желанием помочь поддержать развитие не только библиотеки SciPy, но и многих других связанных и родственных проектов с открытым исходным кодом. Я чрезвычайно рад, что SciPy находится в руках всемирного сообщества талантливых разработчиков, которые обеспечат, чтобы SciPy оставался примером того, как разработка, основанная на инициативе сообщества, может быть успешной.
Фернандо Перес предлагает более широкую перспективу сообщества:
Существование зарождающейся библиотеки Scipy и невероятного – по сегодняшним меркам крошечного – сообщества вокруг неё привлекло меня в мир научного Python ещё в 2001 году, когда я был аспирантом-физиком. Сегодня я поражаюсь, видя, как эти инструменты используются во всём – от школьного образования до исследований, приведших к Нобелевской премии по физике 2017 года.
Не обманывайтесь цифрой 1.0: этот проект является зрелым краеугольным камнем современной экосистемы научных вычислений. Я благодарен многим, кто сделал его возможным, и надеюсь снова внести вклад в его развитие в будущем. Мои искренние поздравления всей команде!
Основные моменты этого выпуска#
Некоторые ключевые особенности этого выпуска:
Значительные улучшения сборки. Колеса для Windows впервые доступны на PyPI, и непрерывная интеграция настроена на Windows и OS X в дополнение к Linux.
Набор новых решателей ОДУ и унифицированный интерфейс к ним (
scipy.integrate.solve_ivp).Два новых оптимизатора доверительной области и новый метод линейного программирования с улучшенной производительностью по сравнению с тем, что
scipy.optimizeпредложенные ранее.Были обернуты многие новые функции BLAS и LAPACK. Обертки BLAS теперь полные.
Обновление и совместимость#
В этом выпуске было несколько устареваний и изменений API, которые задокументированы ниже. Перед обновлением мы рекомендуем пользователям проверить, что их собственный код не использует устаревшую функциональность SciPy (для этого запустите свой код с python -Wd и проверка на DeprecationWarning с).
Для этого выпуска требуется Python 2.7 или >=3.4 и NumPy 1.8.2 или выше.
Это также последний выпуск, поддерживающий LAPACK 3.1.x - 3.3.x. Повышение минимальной поддерживаемой версии LAPACK до >3.2.x долго блокировалось из-за того, что Apple Accelerate предоставляет API LAPACK 3.2.1. Мы решили, что пришло время либо отказаться от Accelerate, либо, если будет достаточно интереса, предоставить обёртки для функций, добавленных в более поздних версиях LAPACK, чтобы его можно было использовать.
Новые возможности#
scipy.cluster улучшения#
scipy.cluster.hierarchy.optimal_leaf_ordering, функция для переупорядочивания матрицы связей для минимизации расстояний между соседними листьями, была добавлена.
scipy.fftpack улучшения#
N-мерные версии дискретных синусных и косинусных преобразований и их
обратных были добавлены как dctn, idctn, dstn и idstn.
scipy.integrate улучшения#
Набор новых решателей ОДУ был добавлен в scipy.integrate. Удобная
функция scipy.integrate.solve_ivp обеспечивает единообразный доступ ко всем решателям.
Отдельные решатели (RK23, RK45, Radau, BDF и LSODA)
также может использоваться напрямую.
scipy.linalg улучшения#
Обёртки BLAS в scipy.linalg.blas были завершены. Добавленные функции: *gbmv, *hbmv, *hpmv, *hpr, *hpr2, *spmv, *spr,
*tbmv, *tbsv, *tpmv, *tpsv, *trsm, *trsv, *sbmv,
*spr2,
Обертки для функций LAPACK *gels, *stev, *sytrd, *hetrd,
*sytf2, *hetrf, *sytrf, *sycon, *hecon, *gglse,
*stebz, *stemr, *sterf, и *stein были добавлены.
Функция scipy.linalg.subspace_angles была добавлена для вычисления
углов между подпространствами двух матриц.
Функция scipy.linalg.clarkson_woodruff_transform был добавлен. Он находит низкоранговую аппроксимацию матрицы через преобразование Кларксона-Вудраффа.
Функции scipy.linalg.eigh_tridiagonal и
scipy.linalg.eigvalsh_tridiagonal, которые находят собственные значения и собственные векторы трёхдиагональных эрмитовых/симметричных матриц, были добавлены.
scipy.ndimage улучшения#
Добавлена поддержка однородных координатных преобразований в
scipy.ndimage.affine_transform.
The ndimage Код на C подвергся значительному рефакторингу и теперь
гораздо проще для понимания и поддержки.
scipy.optimize улучшения#
Методы trust-region-exact и trust-krylov были добавлены в функцию scipy.optimize.minimize. Эти новые методы доверительной области решают
подзадачу с более высокой точностью за счёт большего количества факторизаций Гессе
(по сравнению с dogleg) или большего количества произведений матрица-вектор (по сравнению с ncg), но
обычно требуют меньше нелинейных итераций и могут работать с неопределёнными
матрицами Гессе. Они кажутся очень конкурентоспособными по сравнению с другими методами Ньютона,
реализованными в scipy.
scipy.optimize.linprog приобрёл метод внутренней точки. Его производительность превосходит (как по точности, так и по скорости) старый симплексный метод.
scipy.signal улучшения#
Аргумент fs (частота дискретизации) была добавлена в следующие функции:
firwin, firwin2, firls, и remez. Это делает эти функции согласованными со многими другими функциями в scipy.signal в котором можно указать
частоту дискретизации.
scipy.signal.freqz был значительно ускорен для FIR-фильтров.
scipy.sparse улучшения#
Итерация и срезы по CSC и CSR матрицам теперь выполняются быстрее до ~35%.
The tocsr метод COO матриц теперь в несколько раз быстрее.
The diagonal method of sparse matrices now takes a parameter, indicating
which diagonal to return.
scipy.sparse.linalg улучшения#
Новый итеративный решатель для крупномасштабных несимметричных разреженных линейных систем,
scipy.sparse.linalg.gcrotmk, был добавлен. Он реализует GCROT(m,k), гибкий вариант GCROT.
scipy.sparse.linalg.lsmr теперь принимает начальное приближение, что может привести к
более быстрой сходимости.
SuperLU обновлён до версии 5.2.1.
scipy.spatial улучшения#
Многие метрики расстояния в scipy.spatial.distance получил поддержку весов.
Сигнатуры scipy.spatial.distance.pdist и
scipy.spatial.distance.cdist были изменены на *args, **kwargs для поддержки более широкого диапазона метрик (например, строковых метрик, требующих дополнительных ключевых слов). Также, необязательный out параметр был добавлен в pdist и
cdist позволяя пользователю указать, где должна храниться результирующая матрица расстояний
scipy.stats улучшения#
Методы cdf и logcdf были добавлены в
scipy.stats.multivariate_normal, предоставляя кумулятивную функцию распределения многомерного нормального распределения.
Были добавлены новые функции статистического расстояния, а именно
scipy.stats.wasserstein_distance для первого расстояния Вассерштейна и
scipy.stats.energy_distance для энергетического расстояния.
Устаревшие функции#
Следующие функции в scipy.misc устарели: bytescale,
fromimage, imfilter, imread, imresize, imrotate,
imsave, imshow и toimage. Большинство этих функций имеют неожиданное
поведение (например, масштабирование и приведение типов данных изображения без запроса
пользователя). Другие функции просто имеют лучшие альтернативы.
scipy.interpolate.interpolate_wrapper и все функции в этом подмодуле
устарели. Это был незавершенный набор функций-оберток, который
больше не актуален.
The fillvalue of scipy.signal.convolve2d будет напрямую приведен к типам данных входных массивов в будущем и проверен, что это скаляр или массив с одним элементом.
scipy.spatial.distance.matching устарел. Это псевдоним
scipy.spatial.distance.hamming, который следует использовать вместо этого.
Реализация scipy.spatial.distance.wminkowski основывался на неверной интерпретации определения метрики. В scipy 1.0 он был лишь устаревшим в документации для сохранения обратной совместимости, но рекомендуется использовать новую версию scipy.spatial.distance.minkowski который реализует правильное поведение.
Позиционные аргументы scipy.spatial.distance.pdist и
scipy.spatial.distance.cdist должны быть заменены на их ключевые версии.
Обратно несовместимые изменения#
Следующие устаревшие функции были удалены из scipy.stats:
betai, chisqprob, f_value, histogram, histogram2,
pdf_fromgamma, signaltonoise, square_of_sums, ss и
threshold.
Следующие устаревшие функции были удалены из scipy.stats.mstats:
betai, f_value_wilks_lambda, signaltonoise и threshold.
Устаревший a и reta ключевые слова были удалены из
scipy.stats.shapiro.
Устаревшие функции sparse.csgraph.cs_graph_components и
sparse.linalg.symeig были удалены из scipy.sparse.
Следующие устаревшие ключевые слова были удалены в scipy.sparse.linalg:
drop_tol из splu, и xtype из bicg, bicgstab, cg,
cgs, gmres, qmr и minres.
Устаревшие функции expm2 и expm3 были удалены из
scipy.linalg. Устаревшее ключевое слово q был удален из
scipy.linalg.expm. И устаревший подмодуль linalg.calc_lwork был удален.
Устаревшие функции C2K, K2C, F2C, C2F, F2K и
K2F были удалены из scipy.constants.
Устаревший ppform класс был удалён из scipy.interpolate.
Устаревшее ключевое слово iprint был удален из scipy.optimize.fmin_cobyla.
Значение по умолчанию для zero_phase ключевое слово scipy.signal.decimate
было изменено на True.
The kmeans и kmeans2 функции в scipy.cluster.vq изменил метод, используемый для случайной инициализации, поэтому использование фиксированного случайного сида не обязательно даст те же результаты, что и в предыдущих версиях.
scipy.special.gammaln больше не принимает комплексные аргументы.
Устаревшие функции sph_jn, sph_yn, sph_jnyn, sph_in,
sph_kn, и sph_inkn были удалены. Пользователям следует вместо этого использовать
функции spherical_jn, spherical_yn, spherical_in, и
spherical_kn. Учтите, что новые функции имеют другие сигнатуры.
Перекрёстные свойства scipy.signal.lti системы были удалены.
Следующие свойства/сеттеры были удалены:
Имя - (доступ/установка удалены) - (установка удалена)
StateSpace - (
num,den,gain) - (zeros,poles)TransferFunction (
A,B,C,D,gain) - (zeros,poles)ZerosPolesGain (
A,B,C,D,num,den) - ()
signal.freqz(b, a) с b или a >1-D вызывает ValueError. Это был крайний случай, для которого было неясно, что поведение хорошо определено.
Метод var of scipy.stats.dirichlet теперь возвращает скаляр, а не ndarray, когда длина alpha равна 1.
Прочие изменения#
SciPy теперь имеет формальную структуру управления. Она состоит из BDFL (Паули Виртанен) и Руководящего комитета. См. документ управления подробности.
Теперь можно собирать SciPy на Windows с MSVC + gfortran! Непрерывная интеграция настроена для этой конфигурации сборки на Appveyor, сборка против OpenBLAS.
Непрерывная интеграция для OS X настроена на TravisCI.
Набор тестов SciPy был перенесён из nose to pytest.
scipy/_distributor_init.py был добавлен, чтобы позволить распространителям SciPy
добавлять пользовательский код, который должен выполняться при импорте SciPy (например, проверки
оборудования, пути поиска DLL и т.д.).
Поддержка PEP 518 (определение требований к системе сборки) была добавлена - см.
pyproject.toml в корне репозитория SciPy.
Для обеспечения согласованности имён функций, функция
scipy.linalg.solve_lyapunov переименован в
scipy.linalg.solve_continuous_lyapunov. Старое имя сохранено для обратной совместимости.
Проблемы, закрытые для версии 1.0.0#
#2300: scipy.misc.toimage (и, следовательно, imresize) преобразует в uint32…
#2347: Несколько
misc.im*функции некорректно обрабатывают 3- или 4-канальные…#2442: scipy.misc.pilutil -> scipy.ndimage?
#2829: Mingw Gfortran в Windows?
#3154: scipy.misc.imsave создает неверный заголовок bitmap
#3505: scipy.linalg.lstsq() текст справки для остатков немного странный
#3808: Реализован ли метод Брента для минимизации значения функции…
Полином Лагранжа.: Добавление метода cdf() в stats.multivariate_normal
#4458: scipy.misc.imresize изменяет диапазон изображения
#4575: Документация для L-BFGS-B упоминает несуществующий параметр
#4893: misc.imsave не работает с определённым типом файла
#5231: Расхождения в scipy.optimize.minimize(method='L-BFGS-B')
#5238: Оптимальное упорядочение листьев в scipy.cluster.hierarchy.dendrogram
#5305: Неправильное масштабирование изображения в scipy/misc/pilutil.py с misc.imsave?
#5823: сбой теста в
filter_design#6061: scipy.stats.spearmanr возвращает значения вне диапазона от -1 до 1
#6242: Несогласованность / дублирование для imread и imshow, imsave
#6265: BUG: signal.iirfilter полосового типа нестабилен, когда высокий...
#6370:
scipy.optimize.linear_sum_assignmentзависает на неопределённой матрице#6417: scipy.misc.imresize преобразует изображения в uint8
#6618: splrep и splprep не согласованы
#6854: Поддержка PEP 519 в функциях ввода-вывода
#6921: [Запрос функции] Случайная унитарная матрица
#6930:
uniform_filter1dпохоже, обрезает, а не округляет при выводе…#6949: функция interp2d вызывает аварийное завершение Python
#6959: scipy.interpolate.LSQUnivariateSpline - проверка на возрастание…
#7005: linear_sum_assignment в scipy.optimize никогда не возвращает, если один из…
#7010:
scipy.statsbinned_statistic_2d: возвращаются некорректные номера бинов#7049:
expm_multiplyчрезмерно медленный при вызове для интервалов#7050: Документирование
_argcheckдляrv_discrete#7077:
coo_matrix.tocsr()все еще медленно#7093: Лицензирование колес
#7122: Матричные вычисления на основе скетчинга
#7133: Разрывность специальной функции scipy
#7141: Улучшить документацию по эллиптическим интегралам
#7181: Изменение в
numpy.poly1dвызывает сбой тестов scipy.#7220: Проблема форматирования строк в
LinearOperator.__init__#7239: Исходный дистрибутив в формате tarball
#7247: genlaguerre poly1d-объект не учитывает опцию 'monic' при вычислении
#7248: BUG: регрессия в полиномах Лежандра в master-ветке
#7316: dgels отсутствует
#7381: Интерполяция Крога не может вычислить производные для комплексных...
#7416: scipy.stats.kappa4(h,k) вызывает ValueError для положительного целого...
#7421: scipy.stats.arcsine().pdf и scipy.stats.beta(0.5, 0.5).pdf…
#7429:
test_matrix_norms()в scipy/linalg/tests/test_basic.py вызывает…#7444: Doc: stats.dirichlet.var описание вывода неверно
#7475: Параметр amax в
scalar_search_wolfe2не используется#7510: Операции между numpy.array и разреженной матрицей scipy.sparse возвращают…
#7550: ДОКУМЕНТАЦИЯ: учебник по signal: Опечатка в объяснении свёртки
#7551: stdint.h включён в заголовочные файлы SuperLU, но не существует…
#7553: Сборка для master сломана на OS X
#7557: Ошибка в примере scipy.signal.periodogram
#7590: Ошибка теста OSX -
test_ltisys.TestPlacePoles.test_real#7658: optimize.BenchGlobal сломан
#7669: результат nan от multivariate_normal.cdf
#7733: Несогласованное использование индексов, indptr в
Delaunay.vertex_neighbor_vertices#7747: Изменения в Numpy np.random.dirichlet вызывают сбои тестов
#7772: Исправление параметра rcond= в numpy lstsq
#7776: тесты требуют `nose`
#7798: имена участников для заметок о выпуске 1.0
#7828: Ошибки тестов 32-битной Linux на TestCephes
#7893: изменение поведения scipy.spatial.distance.wminkowski в версии 1.0.0b1
#7898: DOC: оконные функции
#7959: BUG возможно: fmin_bfgs возможно сломан в 1.0
#7969: scipy 1.0.0rc1 windows wheels зависят от отсутствующего msvcp140.dll
Запросы на слияние для 1.0.0#
#4978: WIP: добавление опций pre_center и normalize в lombscargle
#5796: TST: Удалить все постоянные изменения фильтров из тестов
#5910: ENH: sparse.linalg: добавить GCROT(m,k)
#6326: ENH: Новые решатели ОДУ
#6480: ENH: Сделать signal.decimate по умолчанию
zero_phase=True#6705: ENH: add initial guess to sparse.linalg.lsqr
#6706: ENH: добавить начальное приближение в sparse.linalg.lsmr
#6769: BUG: optimize: добавить проверку условия достаточного убывания к линии CG…
#6855: Обработка объектов, поддерживающих PEP 519, в функциях ввода-вывода
#6945: MAINT: очистка кодовой базы ckdtree
#6953: DOC: добавить документ управления проектом SciPy
#6998: исправить документацию коэффициента корреляции Спирмена
#7017: ENH: добавлены методы logcdf и cdf к
scipy.stats.multivariate_normal#7027: Добавить случайные унитарные матрицы
#7030: ENH: Добавить проверки строгого возрастания для x в одномерных сплайнах
#7031: BUG: Исправление
linear_sum_assignmentзависание на неопределенной матрице#7041: DOC: уточнить, что окна по умолчанию являются DFT-чётными
#7048: DOC: изменённая документация для
find_peak_cwt. Исправлено #6922#7056: Исправлена недостаточная точность при расчёте spearman/kendall…
#7057: MAINT: изменение сравнения dtype в
optimize.linear_sum_assignment.#7059: TST: сделать
Xdist_deprecated_argsохватывать все метрики#7061: Исправить ошибки компиляции для msvc 9 и 10
#7070: ENH: sparse: оптимизация быстрых путей срезов CSR/CSC
#7078: ENH: sparse: отложить
sum_duplicatesв csr/csc#7079: ENH: sparse: разрешить подклассам переопределять конкретные математические операции
#7081: ENH: sparse: ускорение CSR/CSC toarray()
#7082: MAINT: Добавлено отсутствующее
PyType_Ready(&SuperLUGlobalType)для Py3#7083: Исправлена опечатка в документации scipy.linalg.lstsq()
#7086: Исправлена ошибка #7049, вызывающая чрезмерную медлительность в
expm_multiply#7088: Документировано
_argcheckдляrv_discrete#7094: MAINT: исправить ошибку в PR #7082
#7098: BF: возвращать NULL из неудачной проверки модуля Py3
#7105: MAINT: Настройка вызова ?TRSYL в решателе Ляпунова
#7111: Исправление опечатки в сообщении об ошибке в UnivariateSpline
#7113: FIX: Добавление float к типу возвращаемого значения в документации
#7119: ENH: sparse.linalg: удалить
_count_nonzeroхак#7123: ENH: добавлен метод "interior-point" для
scipy.optimize.linprog#7137: DOC: уточнить строку документации stats.linregress, закрывает gh-7074
#7138: DOC: special: Добавить пример в строку документации airy.
#7139: DOC: stats: Обновить учебник по статистике
#7142: BUG: special: предотвратить segfault в
pbwa#7143: DOC: special: предупреждение об альтернативных параметризациях эллиптических интегралов
#7146: исправить строку документации NearestNDInterpolator
#7148: DOC: special: Добавить Parameters, Returns и Examples в документацию gamma
#7152: MAINT: spatial: Удалить две неиспользуемые переменные в ckdtree/src/distance.h
#7153: MAINT: special: удалить устаревший вариант
gammaln#7154: MAINT: Исправить код, который вызывает предупреждения компилятора C
#7155: DOC: linalg: Добавить примеры для
solve_bandedиsolve_triangular#7156: DOC: исправление документации NearestNDInterpolator
#7159: BUG: special: исправить знак производной, когда
x < 0вpbwa#7161: MAINT: interpolate: сделать массив Rbf.A свойством
#7163: MAINT: special: возвращать nan для неточных областей
pbwa#7165: ENH: optimize: изменения для повышения эффективности реализации BFGS.
#7166: BUG: Предотвращение бесконечного цикла в
optimize._lsq.trf_linear.py#7173: BUG: sparse: возврат матрицы numpy из
_add_dense#7179: DOC: Исправлена ошибка в строке документации sparse argmax
#7180: MAINT: interpolate: Небольшая очистка в
interpolate/src/_interpolate.cpp#7182: Разрешить однородные координатные преобразования в
affine_transform#7184: MAINT: Удалить хак, изменяющий атрибут только для чтения
#7185: ENH: Добавление оценки периодических сплайнов #6730
#7186: MAINT: PPoly: улучшить сообщения об ошибках для неправильной формы/оси
#7187: DEP: interpolate: устаревание interpolate_wrapper
#7198: DOC: linalg: Добавить примеры для
solveh_bandedиsolve_toeplitz.#7200: DOC: stats: Добавлено обучающее руководство для обобщенного…
#7208: DOC: Добавлены строки документации к
issparse/isspmatrix(_...)методы и…#7213: DOC: добавлены примеры для circmean, circvar, circstd
#7215: DOC: Добавление примеров в docstrings scipy.sparse.linalg….
#7223: DOC: special: Добавить примеры для expit и logit.
#7224: BUG: interpolate: исправить переполнение целых чисел в fitpack.bispev
#7225https://highs.dev/
#7226: MAINT: обновление документации и кода для перехода списка рассылки на python.org
#7233: Исправление проблемы #7232: Не маскировать исключения при оценке целевой функции
#7234: MAINT: cluster: очистка кода VQ/k-means
#7236: ДОК: Исправлена опечатка
#7238: BUG: исправить синтаксическую ошибку из-за символа Unicode в
trustregion_exact.#7243: DOC: Обновление документации в misc/pilutil.py
#7246: DEP: misc: устаревание импортированных имен
#7249: DOC: Добавить графический пример в scipy.cluster.vq.kmeans
#7252: Исправить 5231: документация factr, ftol в синхронизации с кодом
#7254: УЛУЧ: обработка входных данных SphericalVoronoi
#7256: исправление для проблемы #7255 - Функции круговой статистики дают неверный…
#7263: CI: использовать faulthandler Python для упрощения трассировки ошибок сегментации
#7288: ENH: linalg: добавить
subspace_anglesфункция.#7290: BUG: stats: Исправление ложных предупреждений в genextreme.
#7292: ENH: optimize: добавлен метод доверительной области trust-trlib
#7296: DOC: stats: Добавить пример в
ttest_ind_from_statsстрока документации.#7297: DOC: signal: Добавлены примеры для
chirp()иsweep_poly().#7299: DOC: Сделать разницу между brent и fminbound более понятной
#7305: Упростить if-операторы и вызовы конструкторов в
integrate._ode#7309: Соответствие PEP 518.
#7313: REL: добавить
python_requiresв setup.py, исправить проверку версии Python.#7315: BUG: Исправлена ошибка с полиномами Лагерра и Лежандра
#7320: DOC: уточнить значение флагов в ode.integrate
#7333: DOC: Добавить примеры в
scipy.ndimage.gaussian_filter1d#7337: ENH: добавление n-мерного DCT и IDCT в fftpack
#7353: Добавить
_gelsфункции#7357: DOC: linalg: Добавить примеры в документацию svdvals.
#7359: Обновить версию Sphinx до 1.5.5
#7361: DOC: linalg: Добавить ссылки «Смотри также» среди специальных матриц…
#7362: TST: Исправить некоторые сбои тестов в Fedora 25.
#7363: DOC: linalg: улучшить пример в документации для svd
#7365: MAINT: исправление
refguide_check.pyдля Sphinx >= 1.5#7367: BUG: odrpack: исправить неверные проверки шага в
d_lpkbls.f#7368: DOC: constants: Добавить примеры в строку документации 'find'.
#7376: MAINT: включить Mathjax в собранную документацию
#7377: MAINT: optimize: Лучшее название для метода trust-region-exact.
#7378: Улучшить формулировки в учебном пособии
#7383: исправить сбой KroghInterpolator.derivatives с комплексным входом
#7389: FIX: Копирование изменяемого окна в
resample_poly#7390: DOC: optimize: Несколько улучшений примеров в
curve_fit#7391: DOC: Добавление примеров в scipy.stats
#7394: «Вес» фактически является массой. Добавить слизни и слинчи/блобсы к массе
#7398: DOC: Исправить мелкую опечатку в optimize.{brenth,brentq}
#7401: DOC: zeta принимает только вещественные входные данные
#7413: BUG: исправление сообщений об ошибках в
_minimize_trustregion_exact#7414: DOC: исправление
ndimage.distance_transform_bfdocstring [ci skip]#7415: DOC: исправить строку документации skew [ci skip]
#7423: Расширение binnumbers с правильными размерностями
#7431: BUG: Расширить scipy.stats.arcsine.pdf до конечных точек 0 и 1 #7427
#7432: DOC: Добавить примеры в scipy.cluster.hierarchy
#7448: ENH: stats: Реализовать функцию выживания для распределения Парето.
#7454: FIX Заменено
np.assert_allcloseс импортированнымassert_allclose#7460: TST: исправление теста integrate.ivp, который падает на 32-битном Python.
#7461: Doc: Добавлено обучающее руководство для распределений stats ksone
#7463: DOC: Исправлены опечатки и удалены пробелы в конце строк
#7465: Исправить некоторые ошибки порядка байтов в ndimage.interpolation
#7468: удалить избыточность в interpolate.py
#7470: Инициализация "info" в
minpack_lmdif#7478: Добавлено больше тестирования функций smirnov/smirnovi
#7479: MAINT: обновить для новых FutureWarning в numpy 1.13.0
#7480: DOC: правильно описать форму вывода dirichlet.mean() и…
#7482: signal.lti: Удалены устаревшие свойства cross-system
#7484: MAINT: Очистка использования np.asarray в ndimage
#7485: ENH: поддержка любого порядка >=0 в
ndimage.gaussian_filter#7486: ENH: Поддержка k!=0 для sparse.diagonal()
#7498: ОШИБКА: sparse: передача опции assumeSortedIndices в scikit.umfpack
#7501: ENH: добавление оптимального упорядочивания листьев для матриц связей
#7506: MAINT: устранение переполнения в Metropolis, исправляет #7495
#7507: TST: ускорение полного набора тестов за счёт уменьшения точек вычисления в тестах mpmath.
#7509: BUG: исправить проблему при использовании
python setup.py somecommand --force.#7511: исправить некоторые предупреждения, найденные с помощью lgtm
#7514: Добавлено объяснение, что означает возвращаемое целое число.
#7516: BUG: Исправление ошибок округления в
ndimage.uniform_filter1d.#7517: TST: исправить тест signal.convolve, который фактически пропускался.
#7523: ENH: linalg: разрешить lstsq работать с массивами нулевой формы
#7525: TST: Очистка предупреждений
#7526: DOC: параметры в функциях ndimage.interpolation не являются необязательными
#7527: MAINT: Инкапсулировать обработку сообщений об ошибках в
NI_LineBuffer.#7528: MAINT: Удаление псевдонимов ndimage для
NPY_MAXDIMS.#7529: MAINT: Удалить
NI_(UN)LIKELYмакросы в пользу numpy.#7537: MAINT: Использование функции доступа для внутренних структур массивов numpy
#7541: MAINT: Удалить некоторые использования типов Numarray в ndimage.
#7543: MAINT: Заменить все использования NumarrayTypes в
ni_fourier.c#7544: MAINT: Заменить все использования NumarrayTypes в
ni_interpolation.c#7545: MAINT: Заменить все использования NumarrayTypes в
ni_measure.c#7546: MAINT: Заменить все использования NumarrayTypes в
ni_morphology.c#7548: DOC: добавить примечание в README бенчмарков о том, как запускать без пересборки.
#7549: MAINT: Избавиться от NumarrayTypes.
#7552: TST: Исправление новых предупреждений -> ошибки, найденные в OSX
#7554: Обновить superlu до 5.2.1 + исправить проблему с stdint.h на MSVC
#7556: MAINT: Исправить некоторые типы из #7549 + различные предупреждения.
#7558: MAINT: Использовать правильный #define
NO_IMPORT_ARRAY, а неNO_ARRAY_IMPORT…#7562: BUG: Копировать
import_noseиз numpy.#7563: ENH: Добавление первой статистики Вассерштейна и Крамера-фон Мизеса...
#7568: Тестовое обслуживание
#7571: Test janitoring pt. 2
#7572: Pytestifying
#7574: TST: Удалить фильтры игнорирования предупреждений из stats
#7577: MAINT: Удалить неиспользуемый код в
ndimage/ni_measure.cи .h#7578: TST: Удалить фильтры игнорирования предупреждений из sparse, очистить предупреждения…
#7581: ОШИБКА: правильно освободить память из
PyArray_IntpConverter.#7582: ДОКУМЕНТАЦИЯ: учебник по signal: Опечатка в объяснении свёртки
#7583: Удалить оставшиеся фильтры игнорирования предупреждений
#7586: DOC: добавлено примечание в HACKING.rst о том, где найти документацию по сборке.
#7587: DOC: Добавить примеры в scipy.optimize
#7594: TST: Добавить тесты для функций преобразования ndimage.
#7596: Добавлена проверка корректности в
signal.savgol_filter#7599: исправление ошибки условия остановки _upfirdn_apply
#7601: MAINT: special: удалить
sph_jnи др.Следующий код создает фильтр Баттерворта нижних частот. Затем он применяет этот фильтр к массиву, все значения которого равны 1,0; выходные данные также равны 1,0, как и ожидается для фильтра нижних частот. Если: TST: исправить сбои тестов в обрезанных статистических тестах с numpy…
#7605: Чётко указать требуемый порядок размерностей
#7606: MAINT: Удалить неиспользуемую функцию
NI_NormalizeType.#7607: TST: добавить osx в матрицу travis
#7608: DOC: улучшение руководства HACKING - упоминание рецензирования PR как вклада.
#7609: MAINT: Убрать ненужный фильтр предупреждений, избегая ненужных…
#7610: #7557 : исправить пример кода в periodogram
#7611: #7220 : исправить TypeError при возбуждении ValueError для недопустимой формы
#7612: Преобразование тестов yield в параметризованные тесты pytest
#7613: Добавить файл инициализации дистрибьютора
#7614: исправить заголовок
#7615: BUG: sparse: Исправление присваивания с некорректным аргументом sparse
#7617: DOC: Уточнить функции цифровых фильтров
#7619: ENH: scipy.sparse.spmatrix.astype: параметры приведения типа и копирования…
#7621: Предоставление пользователю кода возврата IDID для VODE/ZVODE/LSODE
#7622: MAINT: special: удалить устаревший комментарий для
ellpk#7625: TST: Добавить тест для фильтров предупреждений "ignore"
#7628: MAINT: рефакторинг и очистка distance.py/.c/.h
#7629: DEP: устаревание использования args в xdist
#7630: ENH: взвешенные метрики
#7634: Продолжение #6855
#7635: interpolate.splprep: Тестирование некоторых случаев ошибок, немного улучшенное…
#7642: Добавить пример в
interpolate.lagrange#7643: ENH: Добавлены обёртки для LAPACK
stev#7649: Исправление #7636, добавление тестового покрытия PEP 519 к оставшимся функциям ввода-вывода
#7650: DOC: signal: Добавить 'Примеры' в документацию для sosfiltfilt.
#7651: Исправление использования ccache на Travis + попытка включения на OSX
#7653: DOC: переход примеров с 2 на 3. Закрывает #7366
#7659: BENCH: исправление optimize.BenchGlobal. Закрывает gh-7658.
#7662: CI: ускорение сборок непрерывной интеграции
#7664: Обновить документацию odr
#7665: BUG: wolfe2 линейный/скалярный поиск теперь использует параметр amax
#7671: MAINT:
_lib/ccallback.h: PyCapsule_GetName возвращает constchar*#7672: TST: interpolate: протестировать интегрирование периодических B-сплайнов против…
#7674: Настройка тестов
#7675: CI: переместить refguide-check на более быструю сборку
#7676: DOC: обновление scipy-sphinx-theme для исправления copybutton.js
#7678: Обратите внимание на дополнение нулями результатов
splrepиsplprep#7681: MAINT:
_lib: добавить определяемое пользователем определение доступной памяти#7684: TST: linalg: явно закрывать открытые npz файлы
#7686: MAINT: удалить ненужные строки shebang и биты исполняемости
#7687: BUG: stats: не выдавать недопустимые предупреждения, если моменты бесконечны
#7690: ENH: разрешить int-подобные параметры в нескольких процедурах
#7691: DOC: Удалить неработающие исходные ссылки из документации
#7694: исправить
ma.rraytoma.arrayв функцииmedian_cihs#7698: BUG: stats: исправить результат nan из
multivariate_normal.cdf(#7669)#7703: DOC: special: Обновить документацию для функций нецентрального F-распределения.
#7709: BLD: интеграция: избежать конфликта символов между lsoda и vode
#7711: TST:
_lib: maketest_parallel_threadsчтобы не давать ложных сбоев#7712: TST: stats: увеличение допуска теста в
TestMultivariateNormal.test_broadcasting#7715: MAINT: исправить устаревшее использование numpy.issubdtype
#7716: TST: integrate: удалить тесты времени выполнения
#7717: MAINT: исправление ошибки включения в mstats.winsorize
#7719: DOC: stats: Добавление примечания о частных случаях распределения rdist.
#7720: DOC: Добавить пример и математику к stats.pearsonr
#7723: DOC: Добавлена ссылка на статистику Манна-Уитни
#7727: BUG: special/cdflib: обработка nan и неконечных входных данных
#7728: BLD: spatial: исправить список заголовков зависимостей ckdtree
#7732: BLD: обновить сборку Bento для добавления optimal_leaf_ordering
#7734: DOC: signal: Редактирование и добавление примеров к Kaiser-связанным…
#7736: BUG: Исправляет #7735: Предотвратить переполнение целых чисел в объединенном индексе…
#7737: DOC: переименовать indices/indptr для
spatial.Delaunay vertex_neighbor_vertices#7738: ENH: Ускорение вычисления freqz
#7739: TST: игнорирование сбоя ncfdtridfn в win32 и предупреждение об изменениях режима FPU
#7740: Исправление переполнения в k-выборочном тесте Андерсона-Дарлинга
#7742: TST: special: ограничить диапазон сравнения expm1 mpmath
#7748: TST: stats: не передавать недопустимый alpha в np.random.dirichlet
#7749: BUG/DOC: optimize: метод - 'interior-point', а не 'interior…
#7751: BUG: optimize:
show_options('linprog', method='interior-point')…#7753: ENH: io: более простой синтаксис для чтения/записи смешанных записей в FortranFile
#7754: BLD: добавить
_lib._fpumodeрасширение для сборки Bento.#7756: DOC: Показать функции плотности вероятности как математические выражения
#7757: MAINT: удалить устаревшие скрипты сборки для OS X. Исправляет ошибку pytest.
#7758: MAINT: stats: pep8, перенос строк
#7760: DOC: special: добавить инструкции по добавлению специальных функций
#7761: DOC: разрешить указание версии Python для makefile Sphinx
#7765: TST: исправление покрытия тестами
mstats_extras.py#7767: DOC: обновить заметки о выпуске 1.0.
#7768: DOC: обновить заметки о том, как выпускать. Также изменить файл paver на…
#7769: Добавлен
_sfи_logsfфункция для распределения Планка#7770: DOC: Замена неработающих ссылок в документации minres
#7771: MAINT: очистка вывода сборки f2py
#7773: DOC: optimize: Некоторая редактура документации linprog.
#7774: MAINT: явно задать rcond для вызовов np.linalg.lstsq
#7777: удалить остаточный
noseимпорты#7780: ENH: Wrap LAPACK’s dsytrd
#7781: DOC: Ссылка rfft
#7782: MAINT: запускать автоматическую генерацию pyx в cythonize и удалять автоматически сгенерированные файлы
#7783: FIX: Запрет Wn==1 в цифровых фильтрах
#7790: Исправить ошибки тестов, внесённые gh-5910
#7792: MAINT: исправление синтаксиса в pyproject.toml
#7809: ENH: эскизы — преобразование Кларксона-Вудраффа
#7810: ENH: Добавить
eig(vals)_tridiagonal#7811: BUG: stats: Исправить предупреждения в
binned_statistics_dd#7814: ENH: signal: Замена аргументов 'nyq' и 'Hz' на 'fs'.
#7820: DOC: обновление заметок о выпуске версии 1.0 и mailmap
#7823: BUG: утечка памяти в messagestream / qhull.pyx
#7830: DOC: linalg: Добавить пример в docstring для lstsq.
#7835: ENH: Автоматический порядок FIR для
decimate#7838: MAINT: stats: Устаревание
frechet_lиfrechet_r.#7841: Исправления форматирования PEP8, опечатки и т.д. в slsqp
#7843: ENH: Обернуть все процедуры BLAS
#7844: DOC: обновлен LICENSE.txt с лицензиями входящих библиотек по мере необходимости.
#7851: ENH: Добавить обёртки для ?GGLSE, ?(HE/SY)CON, ?SYTF2, ?(HE/SY)TRF
#7856: ENH: добавлен аргумент out в Xdist
#7858: BUG: special/cdflib: исправить проблемы фатальной потери точности в cumfnc
#7859: FIX: Squash
place_polesпредупреждение о граничном случае#7861: фиктивное утверждение для неопределенного
WITH_THREAD#7863: MAINT: добавить тексты лицензий в бинарные дистрибутивы
#7866: DOC, MAINT: исправить ссылки в документации
#7867: DOC: исправление описаний pdf в строках документации распределений.
#7869: DEP: устаревание функций misc.pilutil
#7870: DEP: удалить устаревшие функции
#7872: TST: подавление RuntimeWarning для теста stats.truncnorm, помеченного как…
#7874: TST: исправить тест optimize.linprog, который периодически падает.
#7875: TST: фильтрация двух предупреждений интегрирования в тестах stats.
#7876: GEN: Добавление комментариев к тестам для пояснения
#7891: ENH: перенос #7879 в ветку 1.0.x
#7902: MAINT: signal: Сделать обработку многомерных массивов в freqz соответствующей…
#7905: REV: восстановить wminkowski
#7908: FIX: Избегать плохого
__del__(близкое) поведение#7918: TST: пометить два теста optimize.linprog как xfail. См. gh-7877.
#7929: MAINT: изменены значения по умолчанию на более низкие в sytf2, sytrf и hetrf
#7939: Исправление построения решателя umfpack для win-amd64
#7948: DOC: добавлено примечание о проверке на устаревание перед обновлением до…
#7952: DOC: обновление дорожной карты SciPy для выпуска 1.0 и недавних обсуждений.
#7960: BUG: optimize: откат изменений bfgs в gh-7165
#7962: TST: special: пометить неудачный тест hyp2f1 как xfail
#7973: BUG: исправлен ключевое слово в 'info' в
_get_mem_availableутилита#8001: TST: исправить сбои тестов из-за обновления Matplotlib 2.1
#8010: BUG: signal: исправить сбой в lfilter
#8019: ТЕХ: исправить сбои тестов с NumPy master