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

Авторы#

  • @arcady +

  • @xoviat +

  • Антон Ахмеров

  • Dominic Antonacci +

  • Алессандро Пьетро Барделли

  • Ved Basu +

  • Michael James Bedford +

  • Ray Bell +

  • Juan M. Bello-Rivas +

  • Себастьян Берг

  • Felix Berkenkamp

  • Jyotirmoy Bhattacharya +

  • Мэтью Бретт

  • Джонатан Брайт

  • Bruno Jiménez +

  • Evgeni Burovski

  • Patrick Callier

  • Mark Campanelli +

  • CJ Кэри

  • Роберт Цимрман

  • Adam Cox +

  • Михаил Данилов +

  • Давид Хабертюр +

  • Andras Deak +

  • Филип ДеБур

  • Anne-Sylvie Deutsch

  • Cathy Douglass +

  • Доминик Элс +

  • Guo Fei +

  • Roman Feldbauer +

  • Юй Фэн

  • Хайме Фернандес дель Рио

  • Orestis Floros +

  • David Freese +

  • Adam Geitgey +

  • James Gerity +

  • Dezmond Goff +

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

  • Ralf Gommers

  • Дирк Гориссен +

  • Matt Haberland +

  • David Hagen +

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

  • Lam Yuen Hei +

  • Jean Helie +

  • Gaute Hope +

  • Гийом Орель +

  • Franziska Horn +

  • Yevhenii Hyzyla +

  • Владислав Яковлев +

  • Марвин Кастнер +

  • Мгер Казанджян

  • Thomas Keck

  • Adam Kurkiewicz +

  • Ronan Lamy +

  • J.L. Lanfranchi +

  • Eric Larson

  • Денис Лаксальд

  • Gregory R. Lee

  • Felix Lenders +

  • Evan Limanto

  • Julian Lukwata +

  • Франсуа Мажимель

  • Syrtis Major +

  • Charles Masson +

  • Nikolay Mayorov

  • Тобиас Мегис

  • Markus Meister +

  • Роман Мирочник +

  • Jordi Montes +

  • Nathan Musoke +

  • Andrew Nelson

  • M.J. Nichol

  • Juan Nunez-Iglesias

  • Arno Onken +

  • Nick Papior +

  • Дима Пасечник +

  • Ashwin Pathak +

  • Oleksandr Pavlyk +

  • Стефан Петерсон

  • Ilhan Polat

  • Андрей Портной +

  • Ravi Kumar Prasad +

  • Аман Пратик

  • Эрик Кинтеро

  • Vedant Rathore +

  • Tyler Reddy

  • Joscha Reimer

  • Philipp Rentzsch +

  • Антонио Орта Рибейро

  • Ned Richards +

  • Кевин Роуз +

  • Бенуа Ростикус +

  • Matt Ruffalo +

  • Eli Sadoff +

  • Pim Schellart

  • Nico Schlömer +

  • Klaus Sembritzki +

  • Николай Шебанов +

  • Jonathan Tammo Siebert

  • Скотт Сиверт

  • Max Silbiger +

  • Мандип Сингх +

  • Майкл Стюарт +

  • Джонатан Саттон +

  • Deep Tavker +

  • Martin Thoma

  • James Tocknell +

  • Aleksandar Trifunovic +

  • Paul van Mulbregt +

  • Jacob Vanderplas

  • Aditya Vijaykumar

  • Pauli Virtanen

  • Джеймс Уэббер

  • Warren Weckesser

  • Eric Wieser +

  • Josh Wilson

  • Zhiqing Xiao +

  • Евгений Журко

  • Николай Зинов +

  • Zé Vinícius +

Всего 121 человек внесли вклад в этот релиз. Люди со знаком «+» рядом с именами внесли патч впервые. Этот список имён генерируется автоматически и может быть неполным.

Проблемы, закрытые для версии 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_bf docstring [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 возвращает const char*

  • #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.rray to ma.array в функции median_cihs

  • #7698: BUG: stats: исправить результат nan из multivariate_normal.cdf (#7669)

  • #7703: DOC: special: Обновить документацию для функций нецентрального F-распределения.

  • #7709: BLD: интеграция: избежать конфликта символов между lsoda и vode

  • #7711: TST: _lib: make test_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