From charlesr.harris at gmail.com Mon Jun 1 17:07:14 2020 From: charlesr.harris at gmail.com (Charles R Harris) Date: Mon, 1 Jun 2020 15:07:14 -0600 Subject: [SciPy-Dev] Proposed SciPy 1.5.0 Release Schedule In-Reply-To: References: Message-ID: On Sun, May 31, 2020 at 4:43 PM Tyler Reddy wrote: > For the author names formatting issue, it looks like the problem happens > when the release notes are opened in "gvim" on Windows so I can more easily > copy/paste them vs. copying from vim in WSL. Maybe some encoding settings. > > I've already seen one complaint about that--I'll try to use a different > intermediate for rc2/final release. Ideally GitHub would just provide a way > to read the draft release notes contents in from a file directly. > It would also be nice they would also accept rst. I currently translate the rst notes to md using pandoc and don't use the pgp versions. Chuck -------------- next part -------------- An HTML attachment was scrubbed... URL: From terry.y.davis+scipy at gmail.com Wed Jun 3 02:34:16 2020 From: terry.y.davis+scipy at gmail.com (Terry) Date: Tue, 2 Jun 2020 23:34:16 -0700 Subject: [SciPy-Dev] Proposal: Deprecate confusing flag params in ndimage.distance_transform_* Message-ID: Hi all, I would like to remove the parameters `return_distances` and `return_indicies`, because their names are misleading and behaviors are different. While working on this PR: https://github.com/scipy/scipy/pull/12144 I realized that the distance_transform_* functions had confusing and complex interactions between the `return_distances`/`distances` and `return_indicies`/`indicies` pairs (the feature transform is always calculated because it's needed to calculate the distance transform). Here's how the the behavior of each pair differs: distances\return_distances | False | True ----------------------------------------------+----------------- None | nothing | return distances ndarray | nothing | populate ndarray indicies\return_indicies | False | True ----------------------------------------------+----------------- None | nothing | return distances ndarray | populate ndarray | populate ndarray Here's the proposed API: distances: ndarray - put distance transform here, don't return it Truthy - Return the distance transform Falsey - Don't return the distance transform indicies: ndarray - put feature transform here, don't return it Truthy - Return the feature transform Falsey - Don't return the feature transform This should simplify the documentation and code, and make it easier to reason about these behaviors. If this sounds reasonable, I'd also be happy to make similar changes to any other parts of scipy that have multiple optional returns/outputs. Regards, Terry -------------- next part -------------- An HTML attachment was scrubbed... URL: From charlesr.harris at gmail.com Wed Jun 3 21:06:30 2020 From: charlesr.harris at gmail.com (Charles R Harris) Date: Wed, 3 Jun 2020 19:06:30 -0600 Subject: [SciPy-Dev] NumPy 1.18.5 released Message-ID: Hi All, On behalf of the NumPy team I am pleased to announce the release of NumPy 1.18.5. This is a short release to enable pickle protocol=5 to be used in Python3.5 and is motivated by the recent backport of pickle5 to Python3.5. The Python versions supported in this release are 3.5-3.8. Downstream developers should use Cython >= 0.29.15 for Python 3.8 support and OpenBLAS >= 3.7 to avoid errors on the Skylake architecture. Wheels for this release can be downloaded from PyPI , source archives and release notes are available from Github . *Contributors* A total of 3 people contributed to this release. People with a \"+\" by their names contributed a patch for the first time. - Charles Harris - Matti Picus - Siyuan Zhuang + *Pull requests merged* A total of 2 pull requests were merged for this release. - #16439: ENH: enable pickle protocol 5 support for python3.5 - #16441: BUG: relpath fails for different drives on windows Cheers, Charles Harris -------------- next part -------------- An HTML attachment was scrubbed... URL: From warren.weckesser at gmail.com Wed Jun 3 21:15:25 2020 From: warren.weckesser at gmail.com (Warren Weckesser) Date: Wed, 3 Jun 2020 21:15:25 -0400 Subject: [SciPy-Dev] NumPy 1.18.5 released In-Reply-To: References: Message-ID: On 6/3/20, Charles R Harris wrote: > Hi All, > > On behalf of the NumPy team I am pleased to announce the release of NumPy > 1.18.5. This is a short release to enable pickle protocol=5 to be used in > Python3.5 and is motivated by the recent backport of pickle5 to Python3.5. Thanks Chuck! Warren > > The Python versions supported in this release are 3.5-3.8. Downstream > developers should use Cython >= 0.29.15 for Python 3.8 support and OpenBLAS >>= 3.7 to avoid errors on the Skylake architecture. Wheels for this release > can be downloaded from PyPI , source > archives and release notes are available from Github > . > > *Contributors* > > A total of 3 people contributed to this release. People with a \"+\" by > their names contributed a patch for the first time. > > - Charles Harris > - Matti Picus > - Siyuan Zhuang + > > > *Pull requests merged* > > A total of 2 pull requests were merged for this release. > > - #16439: ENH: enable pickle protocol 5 support for python3.5 > - #16441: BUG: relpath fails for different drives on windows > > > Cheers, > > Charles Harris > From ralf.gommers at gmail.com Sat Jun 6 18:19:21 2020 From: ralf.gommers at gmail.com (Ralf Gommers) Date: Sun, 7 Jun 2020 00:19:21 +0200 Subject: [SciPy-Dev] Proposal: Deprecate confusing flag params in ndimage.distance_transform_* In-Reply-To: References: Message-ID: On Wed, Jun 3, 2020 at 8:34 AM Terry wrote: > Hi all, > > I would like to remove the parameters `return_distances` and > `return_indicies`, because their names are misleading and behaviors are > different. > > While working on this PR: https://github.com/scipy/scipy/pull/12144 > I realized that the distance_transform_* functions had confusing and > complex interactions between the `return_distances`/`distances` and > `return_indicies`/`indicies` pairs (the feature transform is always > calculated because it's needed to calculate the distance transform). > I agree that that's pretty weird. The `return_something` keyword pattern is present in a number of places in SciPy. It's not great, but we live with it. The combo keywords in these functions where you can provide an in-place argument as well is not present anywhere else as far as I know. > Here's how the the behavior of each pair differs: > distances\return_distances | False | True > ----------------------------------------------+----------------- > None | nothing | return distances > ndarray | nothing | populate ndarray > > indicies\return_indicies | False | True > ----------------------------------------------+----------------- > None | nothing | return distances > ndarray | populate ndarray | populate ndarray > The indices (False, ndarray) case seems wrong, that should also do nothing. For the rest, this is weird but at least consistent. > Here's the proposed API: > distances: > ndarray - put distance transform here, don't return it > Truthy - Return the distance transform > Falsey - Don't return the distance transform > > indicies: > ndarray - put feature transform here, don't return it > Truthy - Return the feature transform > Falsey - Don't return the feature transform > I don't think that's much better to be honest, that makes the `return_*` keywords even more weird. I'd prefer just fixing the one inconsistency I pointed out above and leaving it at that. Thanks for working on this Terry. Cheers, Ralf > This should simplify the documentation and code, and make it easier to > reason about these behaviors. > If this sounds reasonable, I'd also be happy to make similar changes to > any other parts of scipy that have multiple optional returns/outputs. > > Regards, > Terry > _______________________________________________ > SciPy-Dev mailing list > SciPy-Dev at python.org > https://mail.python.org/mailman/listinfo/scipy-dev > -------------- next part -------------- An HTML attachment was scrubbed... URL: From terry.y.davis+scipy at gmail.com Sun Jun 7 00:47:21 2020 From: terry.y.davis+scipy at gmail.com (Terry) Date: Sat, 6 Jun 2020 21:47:21 -0700 Subject: [SciPy-Dev] Proposal: Deprecate confusing flag params in ndimage.distance_transform_* In-Reply-To: References: Message-ID: Hi Ralf, Thanks for the feedback. To be clear, my proposal is to drop the return_* args entirely. If that?s not desirable, we could also decouple return_* from *, so the arg names would be more descriptive, but perhaps this would not be useful. If you?d rather proceed with the change you described, my only questions are whether the fix warrants a deprecation cycle, or does it seem low risk enough to just include in the release notes, and is a test necessary? Either way, I?d be happy to add it to the PR I?ve got open. Cheers, Terry On Sat, Jun 6, 2020 at 15:19 Ralf Gommers wrote: > > > On Wed, Jun 3, 2020 at 8:34 AM Terry > wrote: > >> Hi all, >> >> I would like to remove the parameters `return_distances` and >> `return_indicies`, because their names are misleading and behaviors are >> different. >> >> While working on this PR: https://github.com/scipy/scipy/pull/12144 >> I realized that the distance_transform_* functions had confusing and >> complex interactions between the `return_distances`/`distances` and >> `return_indicies`/`indicies` pairs (the feature transform is always >> calculated because it's needed to calculate the distance transform). >> > > I agree that that's pretty weird. The `return_something` keyword pattern > is present in a number of places in SciPy. It's not great, but we live with > it. The combo keywords in these functions where you can provide an in-place > argument as well is not present anywhere else as far as I know. > > >> Here's how the the behavior of each pair differs: >> distances\return_distances | False | True >> ----------------------------------------------+----------------- >> None | nothing | return distances >> ndarray | nothing | populate ndarray >> >> indicies\return_indicies | False | True >> ----------------------------------------------+----------------- >> None | nothing | return distances >> ndarray | populate ndarray | populate ndarray >> > > The indices (False, ndarray) case seems wrong, that should also do > nothing. For the rest, this is weird but at least consistent. > > >> Here's the proposed API: >> distances: >> ndarray - put distance transform here, don't return it >> Truthy - Return the distance transform >> Falsey - Don't return the distance transform >> >> indicies: >> ndarray - put feature transform here, don't return it >> Truthy - Return the feature transform >> Falsey - Don't return the feature transform >> > > I don't think that's much better to be honest, that makes the `return_*` > keywords even more weird. I'd prefer just fixing the one inconsistency I > pointed out above and leaving it at that. > > Thanks for working on this Terry. > > Cheers, > Ralf > > > >> This should simplify the documentation and code, and make it easier to >> reason about these behaviors. >> If this sounds reasonable, I'd also be happy to make similar changes to >> any other parts of scipy that have multiple optional returns/outputs. >> >> Regards, >> Terry >> _______________________________________________ >> SciPy-Dev mailing list >> SciPy-Dev at python.org >> https://mail.python.org/mailman/listinfo/scipy-dev >> > _______________________________________________ > SciPy-Dev mailing list > SciPy-Dev at python.org > https://mail.python.org/mailman/listinfo/scipy-dev > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jacobr at ethz.ch Mon Jun 8 05:10:42 2020 From: jacobr at ethz.ch (Romain Jacob) Date: Mon, 8 Jun 2020 11:10:42 +0200 Subject: [SciPy-Dev] Adding non-parametric methods to scipy.stats Message-ID: <6a5dee0d-3d55-409d-6bf8-b86e3f465275@tik.ee.ethz.ch> Hello everyone, I have been working for some time on the implementation of non-parametric methods to compute confidence intervals for percentiles. There are some very interesting results in the literature (see e.g. a nice pitch in [1]) which I think it would be great to add to SciPy to make them more readily available. It also seems to be rather in line with "recent" discussions of the roadmap for scipy.stats [2]. I would be interested in contributing this. What do you think? Cheers, -- Romain [1] https://ieeexplore.ieee.org/document/6841797 [2] https://github.com/scipy/scipy/issues/10577 -- Romain Jacob Postdoctoral Researcher ETH Zurich - Computer Engineering and Networks Laboratory www.romainjacob.net @RJacobPartner Gloriastrasse 35, ETZ G75 8092 Zurich +41 7 68 16 88 22 -------------- next part -------------- An HTML attachment was scrubbed... URL: From ralf.gommers at gmail.com Mon Jun 8 14:13:29 2020 From: ralf.gommers at gmail.com (Ralf Gommers) Date: Mon, 8 Jun 2020 20:13:29 +0200 Subject: [SciPy-Dev] Proposal: Deprecate confusing flag params in ndimage.distance_transform_* In-Reply-To: References: Message-ID: On Sun, Jun 7, 2020 at 6:47 AM Terry wrote: > Hi Ralf, > > Thanks for the feedback. > > To be clear, my proposal is to drop the return_* args entirely. > I misread that, I thought you wanted to drop the other two args instead. Either way, I don't think that changes my feedback. Overloading two keywords more isn't a real improvement. If that?s not desirable, we could also decouple return_* from *, so the arg > names would be more descriptive, but perhaps this would not be useful. > > If you?d rather proceed with the change you described, my only questions > are whether the fix warrants a deprecation cycle, or does it seem low risk > enough to just include in the release notes, and is a test necessary? > It doesn't need a deprecation, that's just a bug fix so the change can be made straight away. To guard against misuse, you could add a check that if a return_* is True but the corresponding * is an ndarray, raise an error (because the two keywords are in conflict). Cheers, Ralf > > Either way, I?d be happy to add it to the PR I?ve got open. > > Cheers, > Terry > > On Sat, Jun 6, 2020 at 15:19 Ralf Gommers wrote: > >> >> >> On Wed, Jun 3, 2020 at 8:34 AM Terry >> wrote: >> >>> Hi all, >>> >>> I would like to remove the parameters `return_distances` and >>> `return_indicies`, because their names are misleading and behaviors are >>> different. >>> >>> While working on this PR: https://github.com/scipy/scipy/pull/12144 >>> I realized that the distance_transform_* functions had confusing and >>> complex interactions between the `return_distances`/`distances` and >>> `return_indicies`/`indicies` pairs (the feature transform is always >>> calculated because it's needed to calculate the distance transform). >>> >> >> I agree that that's pretty weird. The `return_something` keyword pattern >> is present in a number of places in SciPy. It's not great, but we live with >> it. The combo keywords in these functions where you can provide an in-place >> argument as well is not present anywhere else as far as I know. >> >> >>> Here's how the the behavior of each pair differs: >>> distances\return_distances | False | True >>> ----------------------------------------------+----------------- >>> None | nothing | return distances >>> ndarray | nothing | populate ndarray >>> >>> indicies\return_indicies | False | True >>> ----------------------------------------------+----------------- >>> None | nothing | return distances >>> ndarray | populate ndarray | populate ndarray >>> >> >> The indices (False, ndarray) case seems wrong, that should also do >> nothing. For the rest, this is weird but at least consistent. >> >> >>> Here's the proposed API: >>> distances: >>> ndarray - put distance transform here, don't return it >>> Truthy - Return the distance transform >>> Falsey - Don't return the distance transform >>> >>> indicies: >>> ndarray - put feature transform here, don't return it >>> Truthy - Return the feature transform >>> Falsey - Don't return the feature transform >>> >> >> I don't think that's much better to be honest, that makes the `return_*` >> keywords even more weird. I'd prefer just fixing the one inconsistency I >> pointed out above and leaving it at that. >> >> Thanks for working on this Terry. >> >> Cheers, >> Ralf >> >> >> >>> This should simplify the documentation and code, and make it easier to >>> reason about these behaviors. >>> If this sounds reasonable, I'd also be happy to make similar changes to >>> any other parts of scipy that have multiple optional returns/outputs. >>> >>> Regards, >>> Terry >>> _______________________________________________ >>> SciPy-Dev mailing list >>> SciPy-Dev at python.org >>> https://mail.python.org/mailman/listinfo/scipy-dev >>> >> _______________________________________________ >> SciPy-Dev mailing list >> SciPy-Dev at python.org >> https://mail.python.org/mailman/listinfo/scipy-dev >> > _______________________________________________ > SciPy-Dev mailing list > SciPy-Dev at python.org > https://mail.python.org/mailman/listinfo/scipy-dev > -------------- next part -------------- An HTML attachment was scrubbed... URL: From terry.y.davis+scipy at gmail.com Tue Jun 9 12:23:54 2020 From: terry.y.davis+scipy at gmail.com (Terry) Date: Tue, 9 Jun 2020 09:23:54 -0700 Subject: [SciPy-Dev] Fwd: Proposal: Deprecate confusing flag params in ndimage.distance_transform_* In-Reply-To: References: Message-ID: On Mon, Jun 8, 2020 at 11:14 AM Ralf Gommers wrote: > > > On Sun, Jun 7, 2020 at 6:47 AM Terry > wrote: > >> Hi Ralf, >> >> Thanks for the feedback. >> >> To be clear, my proposal is to drop the return_* args entirely. >> > > I misread that, I thought you wanted to drop the other two args instead. > Either way, I don't think that changes my feedback. Overloading two > keywords more isn't a real improvement. > > If that?s not desirable, we could also decouple return_* from *, so the >> arg names would be more descriptive, but perhaps this would not be useful. >> >> If you?d rather proceed with the change you described, my only questions >> are whether the fix warrants a deprecation cycle, or does it seem low risk >> enough to just include in the release notes, and is a test necessary? >> > > It doesn't need a deprecation, that's just a bug fix so the change can be > made straight away. > Like this? distances\return_distances | False | True ---------------------------+------------------+----------------- None | nothing | return distances ndarray | nothing | populate ndarray indicies\return_indicies | False | True ---------------------------+------------------+----------------- None | nothing | return distances ndarray | *nothing* | populate ndarray To guard against misuse, you could add a check that if a return_* is True > but the corresponding * is an ndarray, raise an error (because the two > keywords are in conflict). > This seems like it would warrant deprecation, since the only way to do an in-place `distance` calculation is changing. distances\return_distances | False | True ---------------------------+------------------+----------------- None | nothing | return distances ndarray |*populate ndarray*| *error* indicies\return_indicies | False | True ---------------------------+------------------+----------------- None | nothing | return distances ndarray | populate ndarray | *error* > > Cheers, > Ralf > > If we're still considering an API change, I'd rather change return_* to calculate_* to get the names match the behavior instead of visa-versa. distances\*calculate_distances* | False | True -----------------------------+----------------+----------------- None | nothing | return distances ndarray | nothing | populate ndarray indicies\*calculate_indicies* | False | True ----------------------------+-----------------+----------------- None | nothing | return distances ndarray | *nothing* | populate ndarray Cheers, Terry >> >> Either way, I?d be happy to add it to the PR I?ve got open. >> >> Cheers, >> Terry >> >> On Sat, Jun 6, 2020 at 15:19 Ralf Gommers wrote: >> >>> >>> >>> On Wed, Jun 3, 2020 at 8:34 AM Terry >>> wrote: >>> >>>> Hi all, >>>> >>>> I would like to remove the parameters `return_distances` and >>>> `return_indicies`, because their names are misleading and behaviors are >>>> different. >>>> >>>> While working on this PR: https://github.com/scipy/scipy/pull/12144 >>>> I realized that the distance_transform_* functions had confusing and >>>> complex interactions between the `return_distances`/`distances` and >>>> `return_indicies`/`indicies` pairs (the feature transform is always >>>> calculated because it's needed to calculate the distance transform). >>>> >>> >>> I agree that that's pretty weird. The `return_something` keyword pattern >>> is present in a number of places in SciPy. It's not great, but we live with >>> it. The combo keywords in these functions where you can provide an in-place >>> argument as well is not present anywhere else as far as I know. >>> >>> >>>> Here's how the the behavior of each pair differs: >>>> distances\return_distances | False | True >>>> ----------------------------------------------+----------------- >>>> None | nothing | return distances >>>> ndarray | nothing | populate ndarray >>>> >>>> indicies\return_indicies | False | True >>>> ----------------------------------------------+----------------- >>>> None | nothing | return distances >>>> ndarray | populate ndarray | populate ndarray >>>> >>> >>> The indices (False, ndarray) case seems wrong, that should also do >>> nothing. For the rest, this is weird but at least consistent. >>> >>> >>>> Here's the proposed API: >>>> distances: >>>> ndarray - put distance transform here, don't return it >>>> Truthy - Return the distance transform >>>> Falsey - Don't return the distance transform >>>> >>>> indicies: >>>> ndarray - put feature transform here, don't return it >>>> Truthy - Return the feature transform >>>> Falsey - Don't return the feature transform >>>> >>> >>> I don't think that's much better to be honest, that makes the `return_*` >>> keywords even more weird. I'd prefer just fixing the one inconsistency I >>> pointed out above and leaving it at that. >>> >>> Thanks for working on this Terry. >>> >>> Cheers, >>> Ralf >>> >>> >>> >>>> This should simplify the documentation and code, and make it easier to >>>> reason about these behaviors. >>>> If this sounds reasonable, I'd also be happy to make similar changes to >>>> any other parts of scipy that have multiple optional returns/outputs. >>>> >>>> Regards, >>>> Terry >>>> _______________________________________________ >>>> SciPy-Dev mailing list >>>> SciPy-Dev at python.org >>>> https://mail.python.org/mailman/listinfo/scipy-dev >>>> >>> _______________________________________________ >>> SciPy-Dev mailing list >>> SciPy-Dev at python.org >>> https://mail.python.org/mailman/listinfo/scipy-dev >>> >> _______________________________________________ >> SciPy-Dev mailing list >> SciPy-Dev at python.org >> https://mail.python.org/mailman/listinfo/scipy-dev >> > _______________________________________________ > SciPy-Dev mailing list > SciPy-Dev at python.org > https://mail.python.org/mailman/listinfo/scipy-dev > -------------- next part -------------- An HTML attachment was scrubbed... URL: From mhaberla at calpoly.edu Tue Jun 9 14:18:00 2020 From: mhaberla at calpoly.edu (Matt Haberland) Date: Tue, 9 Jun 2020 11:18:00 -0700 Subject: [SciPy-Dev] Adding non-parametric methods to scipy.stats In-Reply-To: <6a5dee0d-3d55-409d-6bf8-b86e3f465275@tik.ee.ethz.ch> References: <6a5dee0d-3d55-409d-6bf8-b86e3f465275@tik.ee.ethz.ch> Message-ID: Yes, I think we would be interested in confidence intervals, but I think the algorithm should be very well standard/cited, even if it's not the best/most modern. @WarrenWeckesser and I had planned to work on confidence intervals for the test statistics returned by our statistical tests . On Mon, Jun 8, 2020 at 2:11 AM Romain Jacob wrote: > Hello everyone, > > I have been working for some time on the implementation of non-parametric > methods to compute confidence intervals for percentiles. There are some > very interesting results in the literature (see e.g. a nice pitch in [1]) > which I think it would be great to add to SciPy to make them more readily > available. It also seems to be rather in line with "recent" discussions of > the roadmap for scipy.stats [2]. > > I would be interested in contributing this. What do you think? > > Cheers, > -- > Romain > > [1] https://ieeexplore.ieee.org/document/6841797 > [2] https://github.com/scipy/scipy/issues/10577 > -- > Romain Jacob > Postdoctoral Researcher > ETH Zurich - Computer Engineering and Networks Laboratory > www.romainjacob.net > @RJacobPartner > Gloriastrasse 35, ETZ G75 > 8092 Zurich > +41 7 68 16 88 22 > _______________________________________________ > SciPy-Dev mailing list > SciPy-Dev at python.org > https://mail.python.org/mailman/listinfo/scipy-dev > -- Matt Haberland Assistant Professor BioResource and Agricultural Engineering 08A-3K, Cal Poly -------------- next part -------------- An HTML attachment was scrubbed... URL: From jacobr at ethz.ch Wed Jun 10 02:11:56 2020 From: jacobr at ethz.ch (Romain Jacob) Date: Wed, 10 Jun 2020 08:11:56 +0200 Subject: [SciPy-Dev] Adding non-parametric methods to scipy.stats In-Reply-To: References: <6a5dee0d-3d55-409d-6bf8-b86e3f465275@tik.ee.ethz.ch> Message-ID: <9ed88efe-5504-3d60-ab73-3ffc7cce1edf@tik.ee.ethz.ch> On 09/06/2020 20:18, Matt Haberland wrote: > Yes, I think we would be interested in confidence intervals, but I > think the algorithm should be very well standard/cited, even if it's > not the best/most modern. Yes definitely! We did not invented the method I am referring to, it a long-known approach (first proposed by Thompson in 1936 [1], extended later and commonly found in textbooks, eg [2,3]). This method is very simple, quite powerful, yet it has been largely overlooked in many scientific fields. I found no available implementation to facilitate its use (at least not in Python, there may be something in R, I have not looked). [1] https://www.jstor.org/stable/2957563 [2] doi.org/10.1002/0471722162.ch7 [3] https://perfeval.epfl.ch/ > @WarrenWeckesser and I had planned to work on confidence intervals for > the test statistics returned by our statistical tests > . > That is also definitely interesting, although I am not myself an expert in that area. I am glad to see that the complete list contains some non-parametric tests :-) Cheers, -- Romain > > On Mon, Jun 8, 2020 at 2:11 AM Romain Jacob > wrote: > > Hello everyone, > > I have been working for some time on the implementation of > non-parametric methods to compute confidence intervals for > percentiles. There are some very interesting results in the > literature (see e.g. a nice pitch in [1]) which I think it would > be great to add to SciPy to make them more readily available. It > also seems to be rather in line with "recent" discussions of the > roadmap for scipy.stats [2]. > > I would be interested in contributing this. What do you think? > > Cheers, > -- > Romain > > [1] https://ieeexplore.ieee.org/document/6841797 > [2] https://github.com/scipy/scipy/issues/10577 > > -- > Romain Jacob > Postdoctoral Researcher > ETH Zurich - Computer Engineering and Networks Laboratory > www.romainjacob.net > @RJacobPartner > Gloriastrasse 35, ETZ G75 > 8092 Zurich > +41 7 68 16 88 22 > _______________________________________________ > SciPy-Dev mailing list > SciPy-Dev at python.org > https://mail.python.org/mailman/listinfo/scipy-dev > > > > -- > Matt Haberland > Assistant Professor > BioResource and Agricultural Engineering > 08A-3K, Cal Poly > > _______________________________________________ > SciPy-Dev mailing list > SciPy-Dev at python.org > https://mail.python.org/mailman/listinfo/scipy-dev -- Romain Jacob Postdoctoral Researcher ETH Zurich - Computer Engineering and Networks Laboratory www.romainjacob.net @RJacobPartner Gloriastrasse 35, ETZ G75 8092 Zurich +41 7 68 16 88 22 -------------- next part -------------- An HTML attachment was scrubbed... URL: From mhaberla at calpoly.edu Wed Jun 10 14:38:59 2020 From: mhaberla at calpoly.edu (Matt Haberland) Date: Wed, 10 Jun 2020 11:38:59 -0700 Subject: [SciPy-Dev] Adding non-parametric methods to scipy.stats In-Reply-To: <9ed88efe-5504-3d60-ab73-3ffc7cce1edf@tik.ee.ethz.ch> References: <6a5dee0d-3d55-409d-6bf8-b86e3f465275@tik.ee.ethz.ch> <9ed88efe-5504-3d60-ab73-3ffc7cce1edf@tik.ee.ethz.ch> Message-ID: Where do you envision this living in SciPy? In its own function, or added functionality to other functions e.g. scipy.stats.percentileofscore ? On Tue, Jun 9, 2020 at 11:12 PM Romain Jacob wrote: > On 09/06/2020 20:18, Matt Haberland wrote: > > Yes, I think we would be interested in confidence intervals, but I think > the algorithm should be very well standard/cited, even if it's not the > best/most modern. > > Yes definitely! We did not invented the method I am referring to, it a > long-known approach (first proposed by Thompson in 1936 [1], extended later > and commonly found in textbooks, eg [2,3]). This method is very simple, > quite powerful, yet it has been largely overlooked in many scientific > fields. I found no available implementation to facilitate its use (at least > not in Python, there may be something in R, I have not looked). > > [1] https://www.jstor.org/stable/2957563 > [2] doi.org/10.1002/0471722162.ch7 > [3] https://perfeval.epfl.ch/ > > @WarrenWeckesser and I had planned to work on confidence intervals for the > test statistics returned by our statistical tests > . > > > That is also definitely interesting, although I am not myself an expert in > that area. I am glad to see that the complete list contains some > non-parametric tests :-) > > Cheers, > -- > Romain > > > On Mon, Jun 8, 2020 at 2:11 AM Romain Jacob wrote: > >> Hello everyone, >> >> I have been working for some time on the implementation of non-parametric >> methods to compute confidence intervals for percentiles. There are some >> very interesting results in the literature (see e.g. a nice pitch in [1]) >> which I think it would be great to add to SciPy to make them more readily >> available. It also seems to be rather in line with "recent" discussions of >> the roadmap for scipy.stats [2]. >> >> I would be interested in contributing this. What do you think? >> >> Cheers, >> -- >> Romain >> >> [1] https://ieeexplore.ieee.org/document/6841797 >> [2] https://github.com/scipy/scipy/issues/10577 >> -- >> Romain Jacob >> Postdoctoral Researcher >> ETH Zurich - Computer Engineering and Networks Laboratory >> www.romainjacob.net >> @RJacobPartner >> Gloriastrasse 35, ETZ G75 >> 8092 Zurich >> +41 7 68 16 88 22 >> _______________________________________________ >> SciPy-Dev mailing list >> SciPy-Dev at python.org >> https://mail.python.org/mailman/listinfo/scipy-dev >> > > > -- > Matt Haberland > Assistant Professor > BioResource and Agricultural Engineering > 08A-3K, Cal Poly > > _______________________________________________ > SciPy-Dev mailing listSciPy-Dev at python.orghttps://mail.python.org/mailman/listinfo/scipy-dev > > -- > Romain Jacob > Postdoctoral Researcher > ETH Zurich - Computer Engineering and Networks Laboratory > www.romainjacob.net > @RJacobPartner > Gloriastrasse 35, ETZ G75 > 8092 Zurich > +41 7 68 16 88 22 > _______________________________________________ > SciPy-Dev mailing list > SciPy-Dev at python.org > https://mail.python.org/mailman/listinfo/scipy-dev > -- Matt Haberland Assistant Professor BioResource and Agricultural Engineering 08A-3K, Cal Poly -------------- next part -------------- An HTML attachment was scrubbed... URL: From jacobr at ethz.ch Thu Jun 11 01:46:06 2020 From: jacobr at ethz.ch (Romain Jacob) Date: Thu, 11 Jun 2020 07:46:06 +0200 Subject: [SciPy-Dev] Adding non-parametric methods to scipy.stats In-Reply-To: References: <6a5dee0d-3d55-409d-6bf8-b86e3f465275@tik.ee.ethz.ch> <9ed88efe-5504-3d60-ab73-3ffc7cce1edf@tik.ee.ethz.ch> Message-ID: I think a dedicated function makes more sense. This function takes as input an array, a percentile and a confidence level, and returns the corresponding one-sided confidence intervals. I quickly looked at the list of existing functions in scipy.stats but did not see any function in "summary statistics" that does similar things. So I would go for a new function. On 10/06/2020 20:38, Matt Haberland wrote: > Where do you envision this living in SciPy? In its own function, or > added functionality to other functions e.g. > scipy.stats.percentileofscore > ? > > On Tue, Jun 9, 2020 at 11:12 PM Romain Jacob > wrote: > > On 09/06/2020 20:18, Matt Haberland wrote: >> Yes, I think we would be interested in confidence intervals, but >> I think the algorithm should be very well standard/cited, even if >> it's not the best/most modern. > > Yes definitely! We did not invented the method I am referring to, > it a long-known approach (first proposed by Thompson in 1936 [1], > extended later and commonly found in textbooks, eg [2,3]). This > method is very simple, quite powerful, yet it has been largely > overlooked in many scientific fields. I found no available > implementation to facilitate its use (at least not in Python, > there may be something in R, I have not looked). > > [1] https://www.jstor.org/stable/2957563 > [2] doi.org/10.1002/0471722162.ch7 > > [3] https://perfeval.epfl.ch/ > >> @WarrenWeckesser and I had planned to work on confidence >> intervals for the test statistics returned by our statistical >> tests >> . >> > > That is also definitely interesting, although I am not myself an > expert in that area. I am glad to see that the complete list > contains some non-parametric tests :-) > > Cheers, > -- > Romain > >> >> On Mon, Jun 8, 2020 at 2:11 AM Romain Jacob > > wrote: >> >> Hello everyone, >> >> I have been working for some time on the implementation of >> non-parametric methods to compute confidence intervals for >> percentiles. There are some very interesting results in the >> literature (see e.g. a nice pitch in [1]) which I think it >> would be great to add to SciPy to make them more readily >> available. It also seems to be rather in line with "recent" >> discussions of the roadmap for scipy.stats [2]. >> >> I would be interested in contributing this. What do you think? >> >> Cheers, >> -- >> Romain >> >> [1] https://ieeexplore.ieee.org/document/6841797 >> [2] https://github.com/scipy/scipy/issues/10577 >> >> -- >> Romain Jacob >> Postdoctoral Researcher >> ETH Zurich - Computer Engineering and Networks Laboratory >> www.romainjacob.net >> @RJacobPartner >> Gloriastrasse 35, ETZ G75 >> 8092 Zurich >> +41 7 68 16 88 22 >> _______________________________________________ >> SciPy-Dev mailing list >> SciPy-Dev at python.org >> https://mail.python.org/mailman/listinfo/scipy-dev >> >> >> >> -- >> Matt Haberland >> Assistant Professor >> BioResource and Agricultural Engineering >> 08A-3K, Cal Poly >> >> _______________________________________________ >> SciPy-Dev mailing list >> SciPy-Dev at python.org >> https://mail.python.org/mailman/listinfo/scipy-dev > -- > Romain Jacob > Postdoctoral Researcher > ETH Zurich - Computer Engineering and Networks Laboratory > www.romainjacob.net > @RJacobPartner > Gloriastrasse 35, ETZ G75 > 8092 Zurich > +41 7 68 16 88 22 > _______________________________________________ > SciPy-Dev mailing list > SciPy-Dev at python.org > https://mail.python.org/mailman/listinfo/scipy-dev > > > > -- > Matt Haberland > Assistant Professor > BioResource and Agricultural Engineering > 08A-3K, Cal Poly > > _______________________________________________ > SciPy-Dev mailing list > SciPy-Dev at python.org > https://mail.python.org/mailman/listinfo/scipy-dev -------------- next part -------------- An HTML attachment was scrubbed... URL: From mhaberla at calpoly.edu Thu Jun 11 13:00:43 2020 From: mhaberla at calpoly.edu (Matt Haberland) Date: Thu, 11 Jun 2020 10:00:43 -0700 Subject: [SciPy-Dev] Adding non-parametric methods to scipy.stats In-Reply-To: References: <6a5dee0d-3d55-409d-6bf8-b86e3f465275@tik.ee.ethz.ch> <9ed88efe-5504-3d60-ab73-3ffc7cce1edf@tik.ee.ethz.ch> Message-ID: OK, we should let our statistics experts weigh in on this. (I'm not actually one of them.) On Wed, Jun 10, 2020 at 10:46 PM Romain Jacob wrote: > I think a dedicated function makes more sense. This function takes as > input an array, a percentile and a confidence level, and returns the > corresponding one-sided confidence intervals. > > I quickly looked at the list of existing functions in scipy.stats but did > not see any function in "summary statistics" that does similar things. So I > would go for a new function. > On 10/06/2020 20:38, Matt Haberland wrote: > > Where do you envision this living in SciPy? In its own function, or added > functionality to other functions e.g. scipy.stats.percentileofscore > > ? > > On Tue, Jun 9, 2020 at 11:12 PM Romain Jacob wrote: > >> On 09/06/2020 20:18, Matt Haberland wrote: >> >> Yes, I think we would be interested in confidence intervals, but I think >> the algorithm should be very well standard/cited, even if it's not the >> best/most modern. >> >> Yes definitely! We did not invented the method I am referring to, it a >> long-known approach (first proposed by Thompson in 1936 [1], extended later >> and commonly found in textbooks, eg [2,3]). This method is very simple, >> quite powerful, yet it has been largely overlooked in many scientific >> fields. I found no available implementation to facilitate its use (at least >> not in Python, there may be something in R, I have not looked). >> >> [1] https://www.jstor.org/stable/2957563 >> [2] doi.org/10.1002/0471722162.ch7 >> [3] https://perfeval.epfl.ch/ >> >> @WarrenWeckesser and I had planned to work on confidence intervals for >> the test statistics returned by our statistical tests >> . >> >> >> That is also definitely interesting, although I am not myself an expert >> in that area. I am glad to see that the complete list contains some >> non-parametric tests :-) >> >> Cheers, >> -- >> Romain >> >> >> On Mon, Jun 8, 2020 at 2:11 AM Romain Jacob wrote: >> >>> Hello everyone, >>> >>> I have been working for some time on the implementation of >>> non-parametric methods to compute confidence intervals for percentiles. >>> There are some very interesting results in the literature (see e.g. a nice >>> pitch in [1]) which I think it would be great to add to SciPy to make them >>> more readily available. It also seems to be rather in line with "recent" >>> discussions of the roadmap for scipy.stats [2]. >>> >>> I would be interested in contributing this. What do you think? >>> >>> Cheers, >>> -- >>> Romain >>> >>> [1] https://ieeexplore.ieee.org/document/6841797 >>> [2] https://github.com/scipy/scipy/issues/10577 >>> -- >>> Romain Jacob >>> Postdoctoral Researcher >>> ETH Zurich - Computer Engineering and Networks Laboratory >>> www.romainjacob.net >>> @RJacobPartner >>> Gloriastrasse 35, ETZ G75 >>> 8092 Zurich >>> +41 7 68 16 88 22 >>> _______________________________________________ >>> SciPy-Dev mailing list >>> SciPy-Dev at python.org >>> https://mail.python.org/mailman/listinfo/scipy-dev >>> >> >> >> -- >> Matt Haberland >> Assistant Professor >> BioResource and Agricultural Engineering >> 08A-3K, Cal Poly >> >> _______________________________________________ >> SciPy-Dev mailing listSciPy-Dev at python.orghttps://mail.python.org/mailman/listinfo/scipy-dev >> >> -- >> Romain Jacob >> Postdoctoral Researcher >> ETH Zurich - Computer Engineering and Networks Laboratory >> www.romainjacob.net >> @RJacobPartner >> Gloriastrasse 35, ETZ G75 >> 8092 Zurich >> +41 7 68 16 88 22 >> _______________________________________________ >> SciPy-Dev mailing list >> SciPy-Dev at python.org >> https://mail.python.org/mailman/listinfo/scipy-dev >> > > > -- > Matt Haberland > Assistant Professor > BioResource and Agricultural Engineering > 08A-3K, Cal Poly > > _______________________________________________ > SciPy-Dev mailing listSciPy-Dev at python.orghttps://mail.python.org/mailman/listinfo/scipy-dev > > _______________________________________________ > SciPy-Dev mailing list > SciPy-Dev at python.org > https://mail.python.org/mailman/listinfo/scipy-dev > -- Matt Haberland Assistant Professor BioResource and Agricultural Engineering 08A-3K, Cal Poly -------------- next part -------------- An HTML attachment was scrubbed... URL: From josef.pktd at gmail.com Thu Jun 11 13:35:03 2020 From: josef.pktd at gmail.com (josef.pktd at gmail.com) Date: Thu, 11 Jun 2020 13:35:03 -0400 Subject: [SciPy-Dev] Adding non-parametric methods to scipy.stats In-Reply-To: References: <6a5dee0d-3d55-409d-6bf8-b86e3f465275@tik.ee.ethz.ch> <9ed88efe-5504-3d60-ab73-3ffc7cce1edf@tik.ee.ethz.ch> Message-ID: I think it would make a good and useful addition and fit into scipy.stats. There are no pure confint functions yet, AFAIR. I recently wrote a function for the confidence interval for the median, mainly because I ran into the formulas that were easy to code. related open issue: how do we get confidence intervals for QQ-plot. aside: I don't like "percent", I prefer quantiles in [0, 1]. See discussion a while ago in numpy. Josef On Thu, Jun 11, 2020 at 1:01 PM Matt Haberland wrote: > OK, we should let our statistics experts weigh in on this. (I'm not > actually one of them.) > > On Wed, Jun 10, 2020 at 10:46 PM Romain Jacob wrote: > >> I think a dedicated function makes more sense. This function takes as >> input an array, a percentile and a confidence level, and returns the >> corresponding one-sided confidence intervals. >> >> I quickly looked at the list of existing functions in scipy.stats but did >> not see any function in "summary statistics" that does similar things. So I >> would go for a new function. >> On 10/06/2020 20:38, Matt Haberland wrote: >> >> Where do you envision this living in SciPy? In its own function, or added >> functionality to other functions e.g. scipy.stats.percentileofscore >> >> ? >> >> On Tue, Jun 9, 2020 at 11:12 PM Romain Jacob wrote: >> >>> On 09/06/2020 20:18, Matt Haberland wrote: >>> >>> Yes, I think we would be interested in confidence intervals, but I think >>> the algorithm should be very well standard/cited, even if it's not the >>> best/most modern. >>> >>> Yes definitely! We did not invented the method I am referring to, it a >>> long-known approach (first proposed by Thompson in 1936 [1], extended later >>> and commonly found in textbooks, eg [2,3]). This method is very simple, >>> quite powerful, yet it has been largely overlooked in many scientific >>> fields. I found no available implementation to facilitate its use (at least >>> not in Python, there may be something in R, I have not looked). >>> >>> [1] https://www.jstor.org/stable/2957563 >>> [2] doi.org/10.1002/0471722162.ch7 >>> [3] https://perfeval.epfl.ch/ >>> >>> @WarrenWeckesser and I had planned to work on confidence intervals for >>> the test statistics returned by our statistical tests >>> . >>> >>> >>> That is also definitely interesting, although I am not myself an expert >>> in that area. I am glad to see that the complete list contains some >>> non-parametric tests :-) >>> >>> Cheers, >>> -- >>> Romain >>> >>> >>> On Mon, Jun 8, 2020 at 2:11 AM Romain Jacob wrote: >>> >>>> Hello everyone, >>>> >>>> I have been working for some time on the implementation of >>>> non-parametric methods to compute confidence intervals for percentiles. >>>> There are some very interesting results in the literature (see e.g. a nice >>>> pitch in [1]) which I think it would be great to add to SciPy to make them >>>> more readily available. It also seems to be rather in line with "recent" >>>> discussions of the roadmap for scipy.stats [2]. >>>> >>>> I would be interested in contributing this. What do you think? >>>> >>>> Cheers, >>>> -- >>>> Romain >>>> >>>> [1] https://ieeexplore.ieee.org/document/6841797 >>>> [2] https://github.com/scipy/scipy/issues/10577 >>>> -- >>>> Romain Jacob >>>> Postdoctoral Researcher >>>> ETH Zurich - Computer Engineering and Networks Laboratory >>>> www.romainjacob.net >>>> @RJacobPartner >>>> Gloriastrasse 35, ETZ G75 >>>> 8092 Zurich >>>> +41 7 68 16 88 22 >>>> _______________________________________________ >>>> SciPy-Dev mailing list >>>> SciPy-Dev at python.org >>>> https://mail.python.org/mailman/listinfo/scipy-dev >>>> >>> >>> >>> -- >>> Matt Haberland >>> Assistant Professor >>> BioResource and Agricultural Engineering >>> 08A-3K, Cal Poly >>> >>> _______________________________________________ >>> SciPy-Dev mailing listSciPy-Dev at python.orghttps://mail.python.org/mailman/listinfo/scipy-dev >>> >>> -- >>> Romain Jacob >>> Postdoctoral Researcher >>> ETH Zurich - Computer Engineering and Networks Laboratory >>> www.romainjacob.net >>> @RJacobPartner >>> Gloriastrasse 35, ETZ G75 >>> 8092 Zurich >>> +41 7 68 16 88 22 >>> _______________________________________________ >>> SciPy-Dev mailing list >>> SciPy-Dev at python.org >>> https://mail.python.org/mailman/listinfo/scipy-dev >>> >> >> >> -- >> Matt Haberland >> Assistant Professor >> BioResource and Agricultural Engineering >> 08A-3K, Cal Poly >> >> _______________________________________________ >> SciPy-Dev mailing listSciPy-Dev at python.orghttps://mail.python.org/mailman/listinfo/scipy-dev >> >> _______________________________________________ >> SciPy-Dev mailing list >> SciPy-Dev at python.org >> https://mail.python.org/mailman/listinfo/scipy-dev >> > > > -- > Matt Haberland > Assistant Professor > BioResource and Agricultural Engineering > 08A-3K, Cal Poly > _______________________________________________ > SciPy-Dev mailing list > SciPy-Dev at python.org > https://mail.python.org/mailman/listinfo/scipy-dev > -------------- next part -------------- An HTML attachment was scrubbed... URL: From warren.weckesser at gmail.com Thu Jun 11 14:54:32 2020 From: warren.weckesser at gmail.com (Warren Weckesser) Date: Thu, 11 Jun 2020 14:54:32 -0400 Subject: [SciPy-Dev] Adding non-parametric methods to scipy.stats In-Reply-To: References: <6a5dee0d-3d55-409d-6bf8-b86e3f465275@tik.ee.ethz.ch> <9ed88efe-5504-3d60-ab73-3ffc7cce1edf@tik.ee.ethz.ch> Message-ID: On 6/11/20, josef.pktd at gmail.com wrote: > I think it would make a good and useful addition and fit into scipy.stats. > There are no pure confint functions yet, AFAIR. I agree with Josef and Matt, this looks like it would be a nice addition to SciPy. At the moment, I'm not sure what the API should look like. Romain, is the work that you've already done available online somewhere? Warren > > I recently wrote a function for the confidence interval for the median, > mainly because I ran into the formulas that were easy to code. > related open issue: how do we get confidence intervals for QQ-plot. > > aside: I don't like "percent", I prefer quantiles in [0, 1]. See discussion > a while ago in numpy. > > Josef > > > On Thu, Jun 11, 2020 at 1:01 PM Matt Haberland > wrote: > >> OK, we should let our statistics experts weigh in on this. (I'm not >> actually one of them.) >> >> On Wed, Jun 10, 2020 at 10:46 PM Romain Jacob wrote: >> >>> I think a dedicated function makes more sense. This function takes as >>> input an array, a percentile and a confidence level, and returns the >>> corresponding one-sided confidence intervals. >>> >>> I quickly looked at the list of existing functions in scipy.stats but >>> did >>> not see any function in "summary statistics" that does similar things. So >>> I >>> would go for a new function. >>> On 10/06/2020 20:38, Matt Haberland wrote: >>> >>> Where do you envision this living in SciPy? In its own function, or >>> added >>> functionality to other functions e.g. scipy.stats.percentileofscore >>> >>> ? >>> >>> On Tue, Jun 9, 2020 at 11:12 PM Romain Jacob wrote: >>> >>>> On 09/06/2020 20:18, Matt Haberland wrote: >>>> >>>> Yes, I think we would be interested in confidence intervals, but I >>>> think >>>> the algorithm should be very well standard/cited, even if it's not the >>>> best/most modern. >>>> >>>> Yes definitely! We did not invented the method I am referring to, it a >>>> long-known approach (first proposed by Thompson in 1936 [1], extended >>>> later >>>> and commonly found in textbooks, eg [2,3]). This method is very simple, >>>> quite powerful, yet it has been largely overlooked in many scientific >>>> fields. I found no available implementation to facilitate its use (at >>>> least >>>> not in Python, there may be something in R, I have not looked). >>>> >>>> [1] https://www.jstor.org/stable/2957563 >>>> [2] doi.org/10.1002/0471722162.ch7 >>>> [3] https://perfeval.epfl.ch/ >>>> >>>> @WarrenWeckesser and I had planned to work on confidence intervals for >>>> the test statistics returned by our statistical tests >>>> . >>>> >>>> >>>> That is also definitely interesting, although I am not myself an expert >>>> in that area. I am glad to see that the complete list contains some >>>> non-parametric tests :-) >>>> >>>> Cheers, >>>> -- >>>> Romain >>>> >>>> >>>> On Mon, Jun 8, 2020 at 2:11 AM Romain Jacob wrote: >>>> >>>>> Hello everyone, >>>>> >>>>> I have been working for some time on the implementation of >>>>> non-parametric methods to compute confidence intervals for >>>>> percentiles. >>>>> There are some very interesting results in the literature (see e.g. a >>>>> nice >>>>> pitch in [1]) which I think it would be great to add to SciPy to make >>>>> them >>>>> more readily available. It also seems to be rather in line with >>>>> "recent" >>>>> discussions of the roadmap for scipy.stats [2]. >>>>> >>>>> I would be interested in contributing this. What do you think? >>>>> >>>>> Cheers, >>>>> -- >>>>> Romain >>>>> >>>>> [1] https://ieeexplore.ieee.org/document/6841797 >>>>> [2] https://github.com/scipy/scipy/issues/10577 >>>>> -- >>>>> Romain Jacob >>>>> Postdoctoral Researcher >>>>> ETH Zurich - Computer Engineering and Networks Laboratory >>>>> www.romainjacob.net >>>>> @RJacobPartner >>>>> Gloriastrasse 35, ETZ G75 >>>>> 8092 Zurich >>>>> +41 7 68 16 88 22 >>>>> _______________________________________________ >>>>> SciPy-Dev mailing list >>>>> SciPy-Dev at python.org >>>>> https://mail.python.org/mailman/listinfo/scipy-dev >>>>> >>>> >>>> >>>> -- >>>> Matt Haberland >>>> Assistant Professor >>>> BioResource and Agricultural Engineering >>>> 08A-3K, Cal Poly >>>> >>>> _______________________________________________ >>>> SciPy-Dev mailing >>>> listSciPy-Dev at python.orghttps://mail.python.org/mailman/listinfo/scipy-dev >>>> >>>> -- >>>> Romain Jacob >>>> Postdoctoral Researcher >>>> ETH Zurich - Computer Engineering and Networks Laboratory >>>> www.romainjacob.net >>>> @RJacobPartner >>>> Gloriastrasse 35, ETZ G75 >>>> 8092 Zurich >>>> +41 7 68 16 88 22 >>>> _______________________________________________ >>>> SciPy-Dev mailing list >>>> SciPy-Dev at python.org >>>> https://mail.python.org/mailman/listinfo/scipy-dev >>>> >>> >>> >>> -- >>> Matt Haberland >>> Assistant Professor >>> BioResource and Agricultural Engineering >>> 08A-3K, Cal Poly >>> >>> _______________________________________________ >>> SciPy-Dev mailing >>> listSciPy-Dev at python.orghttps://mail.python.org/mailman/listinfo/scipy-dev >>> >>> _______________________________________________ >>> SciPy-Dev mailing list >>> SciPy-Dev at python.org >>> https://mail.python.org/mailman/listinfo/scipy-dev >>> >> >> >> -- >> Matt Haberland >> Assistant Professor >> BioResource and Agricultural Engineering >> 08A-3K, Cal Poly >> _______________________________________________ >> SciPy-Dev mailing list >> SciPy-Dev at python.org >> https://mail.python.org/mailman/listinfo/scipy-dev >> > From jacobr at ethz.ch Fri Jun 12 01:58:23 2020 From: jacobr at ethz.ch (Romain Jacob) Date: Fri, 12 Jun 2020 07:58:23 +0200 Subject: [SciPy-Dev] Adding non-parametric methods to scipy.stats In-Reply-To: References: <6a5dee0d-3d55-409d-6bf8-b86e3f465275@tik.ee.ethz.ch> <9ed88efe-5504-3d60-ab73-3ffc7cce1edf@tik.ee.ethz.ch> Message-ID: On 11/06/2020 20:54, Warren Weckesser wrote: > On 6/11/20, josef.pktd at gmail.com wrote: >> I think it would make a good and useful addition and fit into scipy.stats. >> There are no pure confint functions yet, AFAIR. > I agree with Josef and Matt, this looks like it would be a nice > addition to SciPy. At the moment, I'm not sure what the API should > look like. Romain, is the work that you've already done available > online somewhere? > > Warren Yes, I have some functional implementation available here: https://github.com/TriScale-Anon/triscale/blob/master/helpers.py#L397 There is quite some work to be done on formatting and documentation to comply with the SciPy standards, but functionally it's already there (and as you'll see, the method is quite simple). Cheers, -- Romain >> I recently wrote a function for the confidence interval for the median, >> mainly because I ran into the formulas that were easy to code. >> related open issue: how do we get confidence intervals for QQ-plot. >> >> aside: I don't like "percent", I prefer quantiles in [0, 1]. See discussion >> a while ago in numpy. >> >> Josef >> >> >> On Thu, Jun 11, 2020 at 1:01 PM Matt Haberland >> wrote: >> >>> OK, we should let our statistics experts weigh in on this. (I'm not >>> actually one of them.) >>> >>> On Wed, Jun 10, 2020 at 10:46 PM Romain Jacob wrote: >>> >>>> I think a dedicated function makes more sense. This function takes as >>>> input an array, a percentile and a confidence level, and returns the >>>> corresponding one-sided confidence intervals. >>>> >>>> I quickly looked at the list of existing functions in scipy.stats but >>>> did >>>> not see any function in "summary statistics" that does similar things. So >>>> I >>>> would go for a new function. >>>> On 10/06/2020 20:38, Matt Haberland wrote: >>>> >>>> Where do you envision this living in SciPy? In its own function, or >>>> added >>>> functionality to other functions e.g. scipy.stats.percentileofscore >>>> >>>> ? >>>> >>>> On Tue, Jun 9, 2020 at 11:12 PM Romain Jacob wrote: >>>> >>>>> On 09/06/2020 20:18, Matt Haberland wrote: >>>>> >>>>> Yes, I think we would be interested in confidence intervals, but I >>>>> think >>>>> the algorithm should be very well standard/cited, even if it's not the >>>>> best/most modern. >>>>> >>>>> Yes definitely! We did not invented the method I am referring to, it a >>>>> long-known approach (first proposed by Thompson in 1936 [1], extended >>>>> later >>>>> and commonly found in textbooks, eg [2,3]). This method is very simple, >>>>> quite powerful, yet it has been largely overlooked in many scientific >>>>> fields. I found no available implementation to facilitate its use (at >>>>> least >>>>> not in Python, there may be something in R, I have not looked). >>>>> >>>>> [1] https://www.jstor.org/stable/2957563 >>>>> [2] doi.org/10.1002/0471722162.ch7 >>>>> [3] https://perfeval.epfl.ch/ >>>>> >>>>> @WarrenWeckesser and I had planned to work on confidence intervals for >>>>> the test statistics returned by our statistical tests >>>>> . >>>>> >>>>> >>>>> That is also definitely interesting, although I am not myself an expert >>>>> in that area. I am glad to see that the complete list contains some >>>>> non-parametric tests :-) >>>>> >>>>> Cheers, >>>>> -- >>>>> Romain >>>>> >>>>> >>>>> On Mon, Jun 8, 2020 at 2:11 AM Romain Jacob wrote: >>>>> >>>>>> Hello everyone, >>>>>> >>>>>> I have been working for some time on the implementation of >>>>>> non-parametric methods to compute confidence intervals for >>>>>> percentiles. >>>>>> There are some very interesting results in the literature (see e.g. a >>>>>> nice >>>>>> pitch in [1]) which I think it would be great to add to SciPy to make >>>>>> them >>>>>> more readily available. It also seems to be rather in line with >>>>>> "recent" >>>>>> discussions of the roadmap for scipy.stats [2]. >>>>>> >>>>>> I would be interested in contributing this. What do you think? >>>>>> >>>>>> Cheers, >>>>>> -- >>>>>> Romain >>>>>> >>>>>> [1] https://ieeexplore.ieee.org/document/6841797 >>>>>> [2] https://github.com/scipy/scipy/issues/10577 >>>>>> -- >>>>>> Romain Jacob >>>>>> Postdoctoral Researcher >>>>>> ETH Zurich - Computer Engineering and Networks Laboratory >>>>>> www.romainjacob.net >>>>>> @RJacobPartner >>>>>> Gloriastrasse 35, ETZ G75 >>>>>> 8092 Zurich >>>>>> +41 7 68 16 88 22 >>>>>> _______________________________________________ >>>>>> SciPy-Dev mailing list >>>>>> SciPy-Dev at python.org >>>>>> https://mail.python.org/mailman/listinfo/scipy-dev >>>>>> >>>>> >>>>> -- >>>>> Matt Haberland >>>>> Assistant Professor >>>>> BioResource and Agricultural Engineering >>>>> 08A-3K, Cal Poly >>>>> >>>>> _______________________________________________ >>>>> SciPy-Dev mailing >>>>> listSciPy-Dev at python.orghttps://mail.python.org/mailman/listinfo/scipy-dev >>>>> >>>>> -- >>>>> Romain Jacob >>>>> Postdoctoral Researcher >>>>> ETH Zurich - Computer Engineering and Networks Laboratory >>>>> www.romainjacob.net >>>>> @RJacobPartner >>>>> Gloriastrasse 35, ETZ G75 >>>>> 8092 Zurich >>>>> +41 7 68 16 88 22 >>>>> _______________________________________________ >>>>> SciPy-Dev mailing list >>>>> SciPy-Dev at python.org >>>>> https://mail.python.org/mailman/listinfo/scipy-dev >>>>> >>>> >>>> -- >>>> Matt Haberland >>>> Assistant Professor >>>> BioResource and Agricultural Engineering >>>> 08A-3K, Cal Poly >>>> >>>> _______________________________________________ >>>> SciPy-Dev mailing >>>> listSciPy-Dev at python.orghttps://mail.python.org/mailman/listinfo/scipy-dev >>>> >>>> _______________________________________________ >>>> SciPy-Dev mailing list >>>> SciPy-Dev at python.org >>>> https://mail.python.org/mailman/listinfo/scipy-dev >>>> >>> >>> -- >>> Matt Haberland >>> Assistant Professor >>> BioResource and Agricultural Engineering >>> 08A-3K, Cal Poly >>> _______________________________________________ >>> SciPy-Dev mailing list >>> SciPy-Dev at python.org >>> https://mail.python.org/mailman/listinfo/scipy-dev >>> > _______________________________________________ > SciPy-Dev mailing list > SciPy-Dev at python.org > https://mail.python.org/mailman/listinfo/scipy-dev -- Romain Jacob Postdoctoral Researcher ETH Zurich - Computer Engineering and Networks Laboratory www.romainjacob.net @RJacobPartner Gloriastrasse 35, ETZ G75 8092 Zurich +41 7 68 16 88 22 -------------- next part -------------- An HTML attachment was scrubbed... URL: From hans.dembinski at gmail.com Fri Jun 12 10:16:36 2020 From: hans.dembinski at gmail.com (Hans Dembinski) Date: Fri, 12 Jun 2020 16:16:36 +0200 Subject: [SciPy-Dev] Adding non-parametric methods to scipy.stats In-Reply-To: References: <6a5dee0d-3d55-409d-6bf8-b86e3f465275@tik.ee.ethz.ch> <9ed88efe-5504-3d60-ab73-3ffc7cce1edf@tik.ee.ethz.ch> Message-ID: Dear all, > On 11. Jun 2020, at 07:46, Romain Jacob wrote: > > I think a dedicated function makes more sense. This function takes as input an array, a percentile and a confidence level, and returns the corresponding one-sided confidence intervals. > > I quickly looked at the list of existing functions in scipy.stats but did not see any function in "summary statistics" that does similar things. So I would go for a new function. I just joined the list, so I apologise for any etiquette-breaking in advance, but would like to inject here that I am collaborating with Daniel Saxton on `resample`, a library that implements the jackknife and bootstrap, which can be used - among many other things - to compute confidence intervals for quantiles/percentiles. https://github.com/dsaxton/resample We are currently working on interface and documentation and adding more unit tests and benchmarks, but `resample` is already the most complete library that implements resampling methods in Python. Seeing that https://github.com/scipy/scipy/issues/10577 explicitly mentions bootstrapping, we are interested in merging our work into scipy. We use the BSD 3-clause license, so the license should not be an issue. Is there already work ongoing on bootstrap methods? With whom should we collaborate? Some context about us: Daniel is a data analyst working in the financial industry. I am a particle physicist and the author of Boost Histogram (C++ and Python, https://github.com/boostorg/histogram, https://github.com/scikit-hep/boost-histogram) and the maintainer of iminuit, the general purpose minimiser and error computer (C++ and Python, https://github.com/scikit-hep/iminuit). Best regards, Hans From josef.pktd at gmail.com Fri Jun 12 11:29:42 2020 From: josef.pktd at gmail.com (josef.pktd at gmail.com) Date: Fri, 12 Jun 2020 11:29:42 -0400 Subject: [SciPy-Dev] Adding non-parametric methods to scipy.stats In-Reply-To: References: <6a5dee0d-3d55-409d-6bf8-b86e3f465275@tik.ee.ethz.ch> <9ed88efe-5504-3d60-ab73-3ffc7cce1edf@tik.ee.ethz.ch> Message-ID: On Fri, Jun 12, 2020 at 1:58 AM Romain Jacob wrote: > On 11/06/2020 20:54, Warren Weckesser wrote: > > On 6/11/20, josef.pktd at gmail.com wrote: > > I think it would make a good and useful addition and fit into scipy.stats. > There are no pure confint functions yet, AFAIR. > > I agree with Josef and Matt, this looks like it would be a nice > addition to SciPy. At the moment, I'm not sure what the API should > look like. Romain, is the work that you've already done available > online somewhere? > > Warren > > Yes, I have some functional implementation available here: > https://github.com/TriScale-Anon/triscale/blob/master/helpers.py#L397 > An implementation detail: binom has cdf and ppf functions My guess, not verified, is that we can just use binom.interval (at least I used those for similar cases) Josef > There is quite some work to be done on formatting and documentation to > comply with the SciPy standards, but functionally it's already there (and > as you'll see, the method is quite simple). > > Cheers, > -- > Romain > > I recently wrote a function for the confidence interval for the median, > mainly because I ran into the formulas that were easy to code. > related open issue: how do we get confidence intervals for QQ-plot. > > aside: I don't like "percent", I prefer quantiles in [0, 1]. See discussion > a while ago in numpy. > > Josef > > > On Thu, Jun 11, 2020 at 1:01 PM Matt Haberland > wrote: > > > OK, we should let our statistics experts weigh in on this. (I'm not > actually one of them.) > > On Wed, Jun 10, 2020 at 10:46 PM Romain Jacob wrote: > > > I think a dedicated function makes more sense. This function takes as > input an array, a percentile and a confidence level, and returns the > corresponding one-sided confidence intervals. > > I quickly looked at the list of existing functions in scipy.stats but > did > not see any function in "summary statistics" that does similar things. So > I > would go for a new function. > On 10/06/2020 20:38, Matt Haberland wrote: > > Where do you envision this living in SciPy? In its own function, or > added > functionality to other functions e.g. scipy.stats.percentileofscore > ? > > On Tue, Jun 9, 2020 at 11:12 PM Romain Jacob wrote: > > > On 09/06/2020 20:18, Matt Haberland wrote: > > Yes, I think we would be interested in confidence intervals, but I > think > the algorithm should be very well standard/cited, even if it's not the > best/most modern. > > Yes definitely! We did not invented the method I am referring to, it a > long-known approach (first proposed by Thompson in 1936 [1], extended > later > and commonly found in textbooks, eg [2,3]). This method is very simple, > quite powerful, yet it has been largely overlooked in many scientific > fields. I found no available implementation to facilitate its use (at > least > not in Python, there may be something in R, I have not looked). > > [1] https://www.jstor.org/stable/2957563 > [2] doi.org/10.1002/0471722162.ch7 > [3] https://perfeval.epfl.ch/ > > @WarrenWeckesser and I had planned to work on confidence intervals for > the test statistics returned by our statistical tests . > > > That is also definitely interesting, although I am not myself an expert > in that area. I am glad to see that the complete list contains some > non-parametric tests :-) > > Cheers, > -- > Romain > > > On Mon, Jun 8, 2020 at 2:11 AM Romain Jacob wrote: > > > Hello everyone, > > I have been working for some time on the implementation of > non-parametric methods to compute confidence intervals for > percentiles. > There are some very interesting results in the literature (see e.g. a > nice > pitch in [1]) which I think it would be great to add to SciPy to make > them > more readily available. It also seems to be rather in line with > "recent" > discussions of the roadmap for scipy.stats [2]. > > I would be interested in contributing this. What do you think? > > Cheers, > -- > Romain > > [1] https://ieeexplore.ieee.org/document/6841797 > [2] https://github.com/scipy/scipy/issues/10577 > -- > Romain Jacob > Postdoctoral Researcher > ETH Zurich - Computer Engineering and Networks Laboratorywww.romainjacob.net > @RJacobPartner > Gloriastrasse 35, ETZ G75 > 8092 Zurich > +41 7 68 16 88 22 > _______________________________________________ > SciPy-Dev mailing listSciPy-Dev at python.orghttps://mail.python.org/mailman/listinfo/scipy-dev > > -- > Matt Haberland > Assistant Professor > BioResource and Agricultural Engineering > 08A-3K, Cal Poly > > _______________________________________________ > SciPy-Dev mailinglistSciPy-Dev at python.orghttps://mail.python.org/mailman/listinfo/scipy-dev > > -- > Romain Jacob > Postdoctoral Researcher > ETH Zurich - Computer Engineering and Networks Laboratorywww.romainjacob.net > @RJacobPartner > Gloriastrasse 35, ETZ G75 > 8092 Zurich > +41 7 68 16 88 22 > _______________________________________________ > SciPy-Dev mailing listSciPy-Dev at python.orghttps://mail.python.org/mailman/listinfo/scipy-dev > > -- > Matt Haberland > Assistant Professor > BioResource and Agricultural Engineering > 08A-3K, Cal Poly > > _______________________________________________ > SciPy-Dev mailinglistSciPy-Dev at python.orghttps://mail.python.org/mailman/listinfo/scipy-dev > > _______________________________________________ > SciPy-Dev mailing listSciPy-Dev at python.orghttps://mail.python.org/mailman/listinfo/scipy-dev > > -- > Matt Haberland > Assistant Professor > BioResource and Agricultural Engineering > 08A-3K, Cal Poly > _______________________________________________ > SciPy-Dev mailing listSciPy-Dev at python.orghttps://mail.python.org/mailman/listinfo/scipy-dev > > _______________________________________________ > SciPy-Dev mailing listSciPy-Dev at python.orghttps://mail.python.org/mailman/listinfo/scipy-dev > > -- > Romain Jacob > Postdoctoral Researcher > ETH Zurich - Computer Engineering and Networks Laboratory > www.romainjacob.net > @RJacobPartner > Gloriastrasse 35, ETZ G75 > 8092 Zurich > +41 7 68 16 88 22 > _______________________________________________ > SciPy-Dev mailing list > SciPy-Dev at python.org > https://mail.python.org/mailman/listinfo/scipy-dev > -------------- next part -------------- An HTML attachment was scrubbed... URL: From josef.pktd at gmail.com Sat Jun 13 14:54:47 2020 From: josef.pktd at gmail.com (josef.pktd at gmail.com) Date: Sat, 13 Jun 2020 14:54:47 -0400 Subject: [SciPy-Dev] Adding non-parametric methods to scipy.stats In-Reply-To: References: <6a5dee0d-3d55-409d-6bf8-b86e3f465275@tik.ee.ethz.ch> <9ed88efe-5504-3d60-ab73-3ffc7cce1edf@tik.ee.ethz.ch> Message-ID: On Fri, Jun 12, 2020 at 11:29 AM wrote: > > > On Fri, Jun 12, 2020 at 1:58 AM Romain Jacob wrote: > >> On 11/06/2020 20:54, Warren Weckesser wrote: >> >> On 6/11/20, josef.pktd at gmail.com wrote: >> >> I think it would make a good and useful addition and fit into scipy.stats. >> There are no pure confint functions yet, AFAIR. >> >> I agree with Josef and Matt, this looks like it would be a nice >> addition to SciPy. At the moment, I'm not sure what the API should >> look like. Romain, is the work that you've already done available >> online somewhere? >> >> Warren >> >> Yes, I have some functional implementation available here: >> https://github.com/TriScale-Anon/triscale/blob/master/helpers.py#L397 >> > > An implementation detail: > binom has cdf and ppf functions > My guess, not verified, is that we can just use binom.interval > > (at least I used those for similar cases) > I found my version again https://github.com/statsmodels/statsmodels/issues/6562#issuecomment-592769480 I guess that's the same for two sided confint as the references. It doesn't have interpolation if that could be applied in this case. This will eventually end up in statsmodels, but I don't know yet where. That's not a reason not to add it to scipy.stats. Josef > > Josef > > >> There is quite some work to be done on formatting and documentation to >> comply with the SciPy standards, but functionally it's already there (and >> as you'll see, the method is quite simple). >> >> Cheers, >> -- >> Romain >> >> I recently wrote a function for the confidence interval for the median, >> mainly because I ran into the formulas that were easy to code. >> related open issue: how do we get confidence intervals for QQ-plot. >> >> aside: I don't like "percent", I prefer quantiles in [0, 1]. See discussion >> a while ago in numpy. >> >> Josef >> >> >> On Thu, Jun 11, 2020 at 1:01 PM Matt Haberland >> wrote: >> >> >> OK, we should let our statistics experts weigh in on this. (I'm not >> actually one of them.) >> >> On Wed, Jun 10, 2020 at 10:46 PM Romain Jacob wrote: >> >> >> I think a dedicated function makes more sense. This function takes as >> input an array, a percentile and a confidence level, and returns the >> corresponding one-sided confidence intervals. >> >> I quickly looked at the list of existing functions in scipy.stats but >> did >> not see any function in "summary statistics" that does similar things. So >> I >> would go for a new function. >> On 10/06/2020 20:38, Matt Haberland wrote: >> >> Where do you envision this living in SciPy? In its own function, or >> added >> functionality to other functions e.g. scipy.stats.percentileofscore >> ? >> >> On Tue, Jun 9, 2020 at 11:12 PM Romain Jacob wrote: >> >> >> On 09/06/2020 20:18, Matt Haberland wrote: >> >> Yes, I think we would be interested in confidence intervals, but I >> think >> the algorithm should be very well standard/cited, even if it's not the >> best/most modern. >> >> Yes definitely! We did not invented the method I am referring to, it a >> long-known approach (first proposed by Thompson in 1936 [1], extended >> later >> and commonly found in textbooks, eg [2,3]). This method is very simple, >> quite powerful, yet it has been largely overlooked in many scientific >> fields. I found no available implementation to facilitate its use (at >> least >> not in Python, there may be something in R, I have not looked). >> >> [1] https://www.jstor.org/stable/2957563 >> [2] doi.org/10.1002/0471722162.ch7 >> [3] https://perfeval.epfl.ch/ >> >> @WarrenWeckesser and I had planned to work on confidence intervals for >> the test statistics returned by our statistical tests . >> >> >> That is also definitely interesting, although I am not myself an expert >> in that area. I am glad to see that the complete list contains some >> non-parametric tests :-) >> >> Cheers, >> -- >> Romain >> >> >> On Mon, Jun 8, 2020 at 2:11 AM Romain Jacob wrote: >> >> >> Hello everyone, >> >> I have been working for some time on the implementation of >> non-parametric methods to compute confidence intervals for >> percentiles. >> There are some very interesting results in the literature (see e.g. a >> nice >> pitch in [1]) which I think it would be great to add to SciPy to make >> them >> more readily available. It also seems to be rather in line with >> "recent" >> discussions of the roadmap for scipy.stats [2]. >> >> I would be interested in contributing this. What do you think? >> >> Cheers, >> -- >> Romain >> >> [1] https://ieeexplore.ieee.org/document/6841797 >> [2] https://github.com/scipy/scipy/issues/10577 >> -- >> Romain Jacob >> Postdoctoral Researcher >> ETH Zurich - Computer Engineering and Networks Laboratorywww.romainjacob.net >> @RJacobPartner >> Gloriastrasse 35, ETZ G75 >> 8092 Zurich >> +41 7 68 16 88 22 >> _______________________________________________ >> SciPy-Dev mailing listSciPy-Dev at python.orghttps://mail.python.org/mailman/listinfo/scipy-dev >> >> -- >> Matt Haberland >> Assistant Professor >> BioResource and Agricultural Engineering >> 08A-3K, Cal Poly >> >> _______________________________________________ >> SciPy-Dev mailinglistSciPy-Dev at python.orghttps://mail.python.org/mailman/listinfo/scipy-dev >> >> -- >> Romain Jacob >> Postdoctoral Researcher >> ETH Zurich - Computer Engineering and Networks Laboratorywww.romainjacob.net >> @RJacobPartner >> Gloriastrasse 35, ETZ G75 >> 8092 Zurich >> +41 7 68 16 88 22 >> _______________________________________________ >> SciPy-Dev mailing listSciPy-Dev at python.orghttps://mail.python.org/mailman/listinfo/scipy-dev >> >> -- >> Matt Haberland >> Assistant Professor >> BioResource and Agricultural Engineering >> 08A-3K, Cal Poly >> >> _______________________________________________ >> SciPy-Dev mailinglistSciPy-Dev at python.orghttps://mail.python.org/mailman/listinfo/scipy-dev >> >> _______________________________________________ >> SciPy-Dev mailing listSciPy-Dev at python.orghttps://mail.python.org/mailman/listinfo/scipy-dev >> >> -- >> Matt Haberland >> Assistant Professor >> BioResource and Agricultural Engineering >> 08A-3K, Cal Poly >> _______________________________________________ >> SciPy-Dev mailing listSciPy-Dev at python.orghttps://mail.python.org/mailman/listinfo/scipy-dev >> >> _______________________________________________ >> SciPy-Dev mailing listSciPy-Dev at python.orghttps://mail.python.org/mailman/listinfo/scipy-dev >> >> -- >> Romain Jacob >> Postdoctoral Researcher >> ETH Zurich - Computer Engineering and Networks Laboratory >> www.romainjacob.net >> @RJacobPartner >> Gloriastrasse 35, ETZ G75 >> 8092 Zurich >> +41 7 68 16 88 22 >> _______________________________________________ >> SciPy-Dev mailing list >> SciPy-Dev at python.org >> https://mail.python.org/mailman/listinfo/scipy-dev >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: From tyler.je.reddy at gmail.com Sun Jun 14 00:17:28 2020 From: tyler.je.reddy at gmail.com (Tyler Reddy) Date: Sat, 13 Jun 2020 22:17:28 -0600 Subject: [SciPy-Dev] ANN: SciPy 1.5.0rc2 -- please test Message-ID: Hi all, On behalf of the SciPy development team I'm pleased to announce the release candidate SciPy 1.5.0rc2. Please help us test this pre-release. Sources and binary wheels can be found at: https://pypi.org/project/scipy/ and at: https://github.com/scipy/scipy/releases/tag/v1.5.0rc2 One of a few ways to install the release candidate with pip: pip install scipy==1.5.0rc2 ========================== SciPy 1.5.0 Release Notes ========================== .. note:: Scipy 1.5.0 is not released yet! .. contents:: SciPy 1.5.0 is the culmination of 6 months of hard work. It contains many new features, numerous bug-fixes, improved test coverage and better documentation. There have been a number of deprecations and API changes in this release, which are documented below. All users are encouraged to upgrade to this release, as there are a large number of bug-fixes and optimizations. Before upgrading, we recommend that users check that their own code does not use deprecated SciPy functionality (to do so, run your code with ``python -Wd`` and check for ``DeprecationWarning`` s). Our development attention will now shift to bug-fix releases on the 1.5.x branch, and on adding new features on the master branch. This release requires Python 3.6+ and NumPy 1.14.5 or greater. For running on PyPy, PyPy3 6.0+ and NumPy 1.15.0 are required. Highlights of this release - -------------------------- - - wrappers for more than a dozen new ``LAPACK`` routines are now available in `scipy.linalg.lapack` - - Improved support for leveraging 64-bit integer size from linear algebra backends - - addition of the probability distribution for two-sided one-sample Kolmogorov-Smirnov tests New features ============ `scipy.cluster` improvements - ------------------------------ Initialization of `scipy.cluster.vq.kmeans2` using ``minit="++"`` had a quadratic complexity in the number of samples. It has been improved, resulting in a much faster initialization with quasi-linear complexity. `scipy.cluster.hierarchy.dendrogram` now respects the ``matplotlib`` color palette `scipy.fft` improvements - ------------------------------ A new keyword-only argument ``plan`` is added to all FFT functions in this module. It is reserved for passing in a precomputed plan from libraries providing a FFT backend (such as ``PyFFTW`` and ``mkl-fft``), and it is currently not used in SciPy. `scipy.integrate` improvements - ------------------------------ `scipy.interpolate` improvements - -------------------------------- `scipy.io` improvements - ----------------------- `scipy.io.wavfile` error messages are more explicit about what's wrong, and extraneous bytes at the ends of files are ignored instead of raising an error when the data has successfully been read. `scipy.io.loadmat` gained a ``simplify_cells`` parameter, which if set to ``True`` simplifies the structure of the return value if the ``.mat`` file contains cell arrays. ``pathlib.Path`` objects are now supported in `scipy.io` Matrix Market I/O functions `scipy.linalg` improvements - --------------------------- `scipy.linalg.eigh` has been improved. Now various ``LAPACK`` drivers can be selected at will and also subsets of eigenvalues can be requested via ``subset_by_value`` keyword. Another keyword ``subset_by_index`` is introduced. Keywords ``turbo`` and ``eigvals`` are deprecated. Similarly, standard and generalized Hermitian eigenvalue ``LAPACK`` routines ``?evx`` are added and existing ones now have full ``_lwork`` counterparts. Wrappers for the following ``LAPACK`` routines have been added to `scipy.linalg.lapack`: - - ``?getc2``: computes the LU factorization of a general matrix with complete pivoting - - ``?gesc2``: solves a linear system given an LU factorization from ``?getc2`` - - ``?gejsv``: computes the singular value decomposition of a general matrix with higher accuracy calculation of tiny singular values and their corresponding singular vectors - - ``?geqrfp``: computes the QR factorization of a general matrix with non-negative elements on the diagonal of R - - ``?gtsvx``: solves a linear system with general tridiagonal matrix - - ``?gttrf``: computes the LU factorization of a tridiagonal matrix - - ``?gttrs``: solves a linear system given an LU factorization from ``?gttrf`` - - ``?ptsvx``: solves a linear system with symmetric positive definite tridiagonal matrix - - ``?pttrf``: computes the LU factorization of a symmetric positive definite tridiagonal matrix - - ``?pttrs``: solves a linear system given an LU factorization from ``?pttrf`` - - ``?pteqr``: computes the eigenvectors and eigenvalues of a positive definite tridiagonal matrix - - ``?tbtrs``: solves a linear system with a triangular banded matrix - - ``?csd``: computes the Cosine Sine decomposition of an orthogonal/unitary matrix Generalized QR factorization routines (``?geqrf``) now have full ``_lwork`` counterparts. `scipy.linalg.cossin` Cosine Sine decomposition of unitary matrices has been added. The function `scipy.linalg.khatri_rao`, which computes the Khatri-Rao product, was added. The new function `scipy.linalg.convolution_matrix` constructs the Toeplitz matrix representing one-dimensional convolution. `scipy.ndimage` improvements - ---------------------------- `scipy.optimize` improvements - ----------------------------- The finite difference numerical differentiation used in various ``minimize`` methods that use gradients has several new features: - - 2-point, 3-point, or complex step finite differences can be used. Previously only a 2-step finite difference was available. - - There is now the possibility to use a relative step size, previously only an absolute step size was available. - - If the ``minimize`` method uses bounds the numerical differentiation strictly obeys those limits. - - The numerical differentiation machinery now makes use of a simple cache, which in some cases can reduce the number of function evaluations. - - ``minimize``'s ``method= 'powell'`` now supports simple bound constraints There have been several improvements to `scipy.optimize.linprog`: - - The ``linprog`` benchmark suite has been expanded considerably. - - ``linprog``'s dense pivot-based redundancy removal routine and sparse presolve are faster - - When ``scikit-sparse`` is available, solving sparse problems with ``method='interior-point'`` is faster The caching of values when optimizing a function returning both value and gradient together has been improved, avoiding repeated function evaluations when using a ``HessianApproximation`` such as ``BFGS``. ``differential_evolution`` can now use the modern ``np.random.Generator`` as well as the legacy ``np.random.RandomState`` as a seed. `scipy.signal` improvements - --------------------------- A new optional argument ``include_nyquist`` is added to ``freqz`` functions in this module. It is used for including the last frequency (Nyquist frequency). `scipy.signal.find_peaks_cwt` now accepts a ``window_size`` parameter for the size of the window used to calculate the noise floor. `scipy.sparse` improvements - --------------------------- Outer indexing is now faster when using a 2d column vector to select column indices. `scipy.sparse.lil.tocsr` is faster Fixed/improved comparisons between pydata sparse arrays and sparse matrices BSR format sparse multiplication performance has been improved. `scipy.sparse.linalg.LinearOperator` has gained the new ``ndim`` class attribute `scipy.spatial` improvements - ---------------------------- `scipy.spatial.geometric_slerp` has been added to enable geometric spherical linear interpolation on an n-sphere `scipy.spatial.SphericalVoronoi` now supports calculation of region areas in 2D and 3D cases The tree building algorithm used by ``cKDTree`` has improved from quadratic worst case time complexity to loglinear. Benchmarks are also now available for building and querying of balanced/unbalanced kd-trees. `scipy.special` improvements - ---------------------------- The following functions now have Cython interfaces in `cython_special`: - - `scipy.special.erfinv` - - `scipy.special.erfcinv` - - `scipy.special.spherical_jn` - - `scipy.special.spherical_yn` - - `scipy.special.spherical_in` - - `scipy.special.spherical_kn` `scipy.special.log_softmax` has been added to calculate the logarithm of softmax function. It provides better accuracy than ``log(scipy.special.softmax(x))`` for inputs that make softmax saturate. `scipy.stats` improvements - -------------------------- The function for generating random samples in `scipy.stats.dlaplace` has been improved. The new function is approximately twice as fast with a memory footprint reduction between 25 % and 60 % (see gh-11069). `scipy.stats` functions that accept a seed for reproducible calculations using random number generation (e.g. random variates from distributions) can now use the modern ``np.random.Generator`` as well as the legacy ``np.random.RandomState`` as a seed. The ``axis`` parameter was added to `scipy.stats.rankdata`. This allows slices of an array along the given axis to be ranked independently. The ``axis`` parameter was added to `scipy.stats.f_oneway`, allowing it to compute multiple one-way ANOVA tests for data stored in n-dimensional arrays. The performance of ``f_oneway`` was also improved for some cases. The PDF and CDF methods for ``stats.geninvgauss`` are now significantly faster as the numerical integration to calculate the CDF uses a Cython based ``LowLevelCallable``. Moments of the normal distribution (`scipy.stats.norm`) are now calculated using analytical formulas instead of numerical integration for greater speed and accuracy Moments and entropy trapezoidal distribution (`scipy.stats.trapz`) are now calculated using analytical formulas instead of numerical integration for greater speed and accuracy Methods of the truncated normal distribution (`scipy.stats.truncnorm`), especially ``_rvs``, are significantly faster after a complete rewrite. The `fit` method of the Laplace distribution, `scipy.stats.laplace`, now uses the analytical formulas for the maximum likelihood estimates of the parameters. Generation of random variates is now thread safe for all SciPy distributions. 3rd-party distributions may need to modify the signature of the ``_rvs()`` method to conform to ``_rvs(self, ..., size=None, random_state=None)``. (A one-time VisibleDeprecationWarning is emitted when using non-conformant distributions.) The Kolmogorov-Smirnov two-sided test statistic distribution (`scipy.stats.kstwo`) was added. Calculates the distribution of the K-S two-sided statistic ``D_n`` for a sample of size n, using a mixture of exact and asymptotic algorithms. The new function ``median_abs_deviation`` replaces the deprecated ``median_absolute_deviation``. The ``wilcoxon`` function now computes the p-value for Wilcoxon's signed rank test using the exact distribution for inputs up to length 25. The function has a new ``mode`` parameter to specify how the p-value is to be computed. The default is ``"auto"``, which uses the exact distribution for inputs up to length 25 and the normal approximation for larger inputs. Added a new Cython-based implementation to evaluate guassian kernel estimates, which should improve the performance of ``gaussian_kde`` The ``winsorize`` function now has a ``nan_policy`` argument for refined handling of ``nan`` input values. The ``binned_statistic_dd`` function with ``statistic="std"`` performance was improved by ~4x. ``scipy.stats.kstest(rvs, cdf,...)`` now handles both one-sample and two-sample testing. The one-sample variation uses `scipy.stats.ksone` (or `scipy.stats.kstwo` with back off to `scipy.stats.kstwobign`) to calculate the p-value. The two-sample variation, invoked if ``cdf`` is array_like, uses an algorithm described by Hodges to compute the probability directly, only backing off to `scipy.stats.kstwo` in case of overflow. The result in both cases is more accurate p-values, especially for two-sample testing with smaller (or quite different) sizes. `scipy.stats.maxwell` performance improvements include a 20 % speed up for `fit()`` and 5 % for ``pdf()`` `scipy.stats.shapiro` and `scipy.stats.jarque_bera` now return a named tuple for greater consistency with other ``stats`` functions Deprecated features =================== `scipy` deprecations - -------------------- `scipy.special` changes - ----------------------- The ``bdtr``, ``bdtrc``, and ``bdtri`` functions are deprecating non-negative non-integral ``n`` arguments. `scipy.stats` changes - --------------------- The function ``median_absolute_deviation`` is deprecated. Use ``median_abs_deviation`` instead. The use of the string ``"raw"`` with the ``scale`` parameter of ``iqr`` is deprecated. Use ``scale=1`` instead. Backwards incompatible changes ============================== `scipy.interpolate` changes - --------------------------- `scipy.linalg` changes - ---------------------- The output signatures of ``?syevr``, ``?heevr`` have been changed from ``w, v, info`` to ``w, v, m, isuppz, info`` The order of output arguments ``w``, ``v`` of ``{gv, gvd, gvx}`` is swapped. `scipy.signal` changes - ---------------------- The output length of `scipy.signal.upfirdn` has been corrected, resulting outputs may now be shorter for some combinations of up/down ratios and input signal and filter lengths. `scipy.signal.resample` now supports a ``domain`` keyword argument for specification of time or frequency domain input. `scipy.stats` changes - --------------------- Other changes ============= Improved support for leveraging 64-bit integer size from linear algebra backends in several parts of the SciPy codebase. Shims designed to ensure the compatibility of SciPy with Python 2.7 have now been removed. Many warnings due to unused imports and unused assignments have been addressed. Many usage examples were added to function docstrings, and many input validations and intuitive exception messages have been added throughout the codebase. Early stage adoption of type annotations in a few parts of the codebase Authors ======= * @endolith * Hameer Abbasi * ADmitri + * Wesley Alves + * Berkay Antmen + * Sylwester Arabas + * Arne K?derle + * Christoph Baumgarten * Peter Bell * Felix Berkenkamp * Jord?o Bragantini + * Clemens Brunner + * Evgeni Burovski * Matthias Bussonnier + * CJ Carey * Derrick Chambers + * Leander Claes + * Christian Clauss * Luigi F. Cruz + * dankleeman * Andras Deak * Milad Sadeghi DM + * jeremie du boisberranger + * Stefan Endres * Malte Esders + * Leo Fang + * felixhekhorn + * Isuru Fernando * Andrew Fowlie * Lakshay Garg + * Gaurav Gijare + * Ralf Gommers * Emmanuelle Gouillart + * Kevin Green + * Martin Grignard + * Maja Gwozdz * Sturla Molden * gyu-don + * Matt Haberland * hakeemo + * Charles Harris * Alex Henrie * Santi Hernandez + * William Hickman + * Till Hoffmann + * Joseph T. Iosue + * Anany Shrey Jain * Jakob Jakobson * Charles Jekel + * Julien Jerphanion + * Jiacheng-Liu + * Christoph Kecht + * Paul Kienzle + * Reidar Kind + * Dmitry E. Kislov + * Konrad + * Konrad0 * Takuya KOUMURA + * Krzysztof Pi?ro * Peter Mahler Larsen * Eric Larson * Antony Lee * Gregory Lee + * Gregory R. Lee * Chelsea Liu * Cong Ma + * Kevin Mader + * Maja Gw??d? + * Alex Marvin + * Matthias K?mmerer * Nikolay Mayorov * Mazay0 + * G. D. McBain * Nicholas McKibben + * Sabrina J. Mielke + * Sebastian J. Mielke + * Milo? Komar?evi? + * Shubham Mishra + * Santiago M. Mola + * Grzegorz Mrukwa + * Peyton Murray * Andrew Nelson * Nico Schl?mer * nwjenkins + * odidev + * Sambit Panda * Vikas Pandey + * Rick Paris + * Harshal Prakash Patankar + * Balint Pato + * Matti Picus * Ilhan Polat * poom + * Siddhesh Poyarekar * Vladyslav Rachek + * Bharat Raghunathan * Manu Rajput + * Tyler Reddy * Andrew Reed + * Lucas Roberts * Ariel Rokem * Heshy Roskes * Matt Ruffalo * Atsushi Sakai + * Benjamin Santos + * Christoph Schock + * Lisa Schwetlick + * Chris Simpson + * Leo Singer * Kai Striega * S?ren Fuglede J?rgensen * Kale-ab Tessera + * Seth Troisi + * Robert Uhl + * Paul van Mulbregt * Vasiliy + * Isaac Virshup + * Pauli Virtanen * Shakthi Visagan + * Jan Vleeshouwers + * Sam Wallan + * Lijun Wang + * Warren Weckesser * Richard Weiss + * wenhui-prudencemed + * Eric Wieser * Josh Wilson * James Wright + * Ruslan Yevdokymov + * Ziyao Zhang + A total of 129 people contributed to this release. People with a "+" by their names contributed a patch for the first time. This list of names is automatically generated, and may not be fully complete. Issues closed for 1.5.0 - ----------------------- * `#1455 `__: ellipord does returns bogus values if gstop or gpass are negative... * `#1968 `__: correlate2d's output does not agree with correlate's output in... * `#2744 `__: BUG: optimize: '\*\*kw' argument of 'newton_krylov' is not documented * `#4755 `__: TypeError: data type "`__: scipy.optimize maxiter option not working as expected * `#5144 `__: RuntimeWarning on csgraph.shortest_path when edge lengths are... * `#5309 `__: Documentation of 'hybr' and 'lm' inconsistent in optimize.root * `#6026 `__: Replace approx_grad with _numdiff.approx_derivative in scipy.optimize * `#6502 `__: Computing Eigenvalues in an Interval with LAPACK * `#7058 `__: Errors in special.bdtri and special.bdtr for non-integer k values * `#7700 `__: SuperLU does not respect perm_c="NATURAL" * `#7895 `__: Improvements to io.loadmat * `#8205 `__: ValueError in scipy.linalg.eigvalsh for large matrix * `#8278 `__: Memory limit for scipy.sparse.linalg.spsolve with scikit-umfpack * `#8327 `__: scipy.stats.mstats.winsorize NaN handling * `#8341 `__: scipy.stats.ks_2samp for masked and unmasked data give different... * `#8748 `__: scipy.stats.kstest for same distribution: p-values nonuniform * `#9042 `__: optimize: Incorrect statement about \`jac\` in the \`minimize\`... * `#9197 `__: problem with scipy.signal.butter with 1000+ points array * `#9212 `__: EIGH very very slow --> suggesting an easy fix * `#9553 `__: ndimage routines behave badly when output has memory overlap... * `#9632 `__: ndimage.maximum_filter undocumented behaviour using footprint... * `#9658 `__: `scipy.optimize.minimize(method='COBYLA')` not threadsafe * `#9710 `__: stats.weightedtau([1], [1.0]) SEGFAULTs * `#9797 `__: Master Tracker for some Kolmogorov-Smirnov test Issues * `#9844 `__: scipy.signal.upfirdn gives different length matrix versus MATLAB... * `#9872 `__: scipy.signal.convolve is slower when vectorized * `#9913 `__: BUG: No dt in StateSpace operations * `#10014 `__: Distribution names \`weibull_min\`and \`weibull_max\` should... * `#10159 `__: BUG: stats: chisquare returns incorrect results for arrays of... * `#10302 `__: scipy.fft: Add a \`plan\` argument * `#10332 `__: 'Incomplete wav chunk' inconsistent/reason unknown * `#10441 `__: Remove uses of \`numpy.dual\`? * `#10558 `__: Document implicit sum in csr_matrix() constructor * `#10788 `__: LU with full pivoting * `#10841 `__: Unexpected behavior in linalg.blas.dtrmm wrapper * `#10919 `__: optimize._lbfgsb setulb() function violates parameter bounds * `#10963 `__: kstest, ks_2samp: confusing \`mode\` argument descriptions * `#11022 `__: Unexpected Result in factorial function with NaN input * `#11028 `__: Documentation error in optimize.minimize * `#11058 `__: Adding logsoftmax function * `#11076 `__: ValueError: Unknown wave file format * `#11090 `__: Misconception of the median absolute deviation in stats? * `#11095 `__: BUG: find_peaks_cwt test failures in 32-bit Linux wheels * `#11107 `__: scipy.io.mmread generated an error "TypeError: startswith first... * `#11123 `__: Add wrapper for ?gttrf/?gttrs * `#11128 `__: OverflowError in resample_poly (upfirdn) * `#11132 `__: Possible bug: rv_discret.ppf for percentiles 0 and 100 and loc... * `#11163 `__: Comparisons between scipy spmatrix and can sparse.SparseArray... * `#11168 `__: Generalized Pareto variance inaccurate for concentrations near... * `#11169 `__: Add wrapper for ?geqrfp * `#11184 `__: 2-sided Kolmogorov Smirnov returns p-value of 1 * `#11185 `__: The .roots() or solve() function of scipy.interpolate.CubicHermiteSpline... * `#11190 `__: Add wrapper for ?tbtrs * `#11200 `__: Can no longer slice csr_matrix in 1.3.0 * `#11207 `__: _minimize_scalar_bounded: reference before assignment * `#11216 `__: linprog: interior-point: Cholmod reordering can be reused * `#11223 `__: Add wrappers for ?pttrf, ?pttrs * `#11224 `__: Add wrapperfor ?pteqr * `#11235 `__: MAINT: Missleading Error Message for IIR Filter * `#11244 `__: Missing reference in \`scipy.optimize.line_search\` * `#11262 `__: Hermitian Eigenvalue Problem eigh() API and wrapper change proposal * `#11266 `__: Sparse matrix constructor data type detection changes on Numpy... * `#11270 `__: CI failing: Travis CI Py36 refguide and Linux_Python_36_32bit_full... * `#11279 `__: linalg.eigh checks whole array for finite values * `#11295 `__: CI: azure does not auto-cancel old jobs on pushes * `#11299 `__: stats.truncnorm.rvs 100x slower in v1.4.x than v1.3.3 * `#11315 `__: BUG: special: rgamma on negative integers smaller -34 * `#11319 `__: Missing \`int64_t\` declaration in rectangular_lsap.cpp * `#11323 `__: Compilation failure due to missing symbol pthread_atfork * `#11332 `__: BUG: directed_hausdorff distance on sets u and v when u is a... * `#11350 `__: Khatri-Rao product * `#11354 `__: ENH: Add wrapper for ?gejsv * `#11361 `__: Dropped NaN in eval_genlaguerre function * `#11363 `__: Dropped NaN in hyperu function * `#11365 `__: scipy.stats.binned_statistic regressed in v1.4.0 * `#11369 `__: Dropped NaN in eval_hermite * `#11370 `__: Dropped NaN in eval_gegenbauer * `#11373 `__: Add wrapper for ?gtsvx * `#11374 `__: Add wrapper for ?ptsvx * `#11391 `__: csgraph.minimum_spanning_tree loses precision * `#11398 `__: Update stats to cope with \`np.random.Generator\` machinery * `#11412 `__: Array copying causes unwanted type casting from complex to float... * `#11415 `__: Where is the Wiener Filter derived from? * `#11416 `__: _lib._util.getargspec_no_self is missing KEYWORD_ONLY support * `#11428 `__: Documentation on SHGO inequality constraints appears contradictory * `#11429 `__: Add LAPACK's ZUNCSD cosine sine decomposition * `#11438 `__: run_dualannealing passes bounds incorrectly in benchmarks/optimize.py * `#11441 `__: Can't run optimize benchmarks * `#11442 `__: Chebyshev weights * `#11448 `__: Wrongly typed comparison in integrate.quad * `#11458 `__: BUG: maximum_bipartite_matching produces infeasible solution * `#11460 `__: CI failing: 2 Travis CI tests fail with numpy build or version... * `#11462 `__: Bug on "++" initialization on "kmeans2" * `#11464 `__: Shouldn't data type of KDE evaluation should be like in the input... * `#11468 `__: performance of binned_statistics_2d 100x slowdown from 1.3.2... * `#11484 `__: Callback function doesn't give the same value as the one being... * `#11492 `__: Confusing dendrogram labelling * `#11493 `__: scipy.optimize.least_squares fails if the return array of the... * `#11494 `__: Error performing kronecker product between large sparse vectors * `#11503 `__: medfilt produces 0 on input of length 1 * `#11529 `__: Pyflakes generates almost 700 warnings. * `#11566 `__: irfft/irfft2/irfftn docs are slightly confusing re: input type. * `#11572 `__: least_squares: too small tolerances not catched with method='lm' * `#11581 `__: DOC: scipy.interpolate.RectSphereBivariateSpline * `#11586 `__: Differential evolution breaks with LinearConstraints with sparse... * `#11595 `__: scipy.spatial.cKDTree construction slow for some datasets * `#11598 `__: output of special.voigt_profile when sigma=0 * `#11601 `__: linalg tests failing in runtests.py * `#11602 `__: scipy.optimize.linear_sum_assignment returns reverse diagonal... * `#11610 `__: Analytic formula for normal moments * `#11611 `__: Build failure with gfortran 10 * `#11613 `__: TST, MAINT: test_quadpack TestCtypesQuad wasn't fully migrated... * `#11630 `__: SmoothBivariateSpline bbox parameter * `#11635 `__: typo in docstring of scipy.stats.norminvgauss * `#11637 `__: BUG: core dumps when calling scipy.interpolate.interp1d with... * `#11638 `__: better documentation for 'return_all' option in minimize(Nelder... * `#11652 `__: TST, MAINT: CI failures for pre-release NumPy wheels * `#11659 `__: optimize.fmin_l_bfgs_b needs bound check and appropiate error... * `#11660 `__: BUG/ENH: distribution.ncf with nc=0 returns nan * `#11661 `__: scipy.ndimage.convolve1d and correlate1d don't behave properly... * `#11669 `__: p-value varies with the order of the data * `#11676 `__: documentation of scipy.spatial.HalfspaceIntersection: wrong method... * `#11685 `__: Rotation cannot be expressed as matrix * `#11686 `__: MAINT: mypy imports of Cython "modules" * `#11693 `__: TestDifferentialEvolutionSolver::test_L4 failing in CI * `#11696 `__: DOC: incorrect compiler information for macOS in docs * `#11709 `__: eigh() tests fail to pass, crash Python with seemingly ramdom... * `#11763 `__: Small error in gamma continuous rv fit comments * `#11769 `__: truncnorm.rvs Weird Behaviors * `#11770 `__: crash in TestEigh::test_value_subsets * `#11795 `__: trapz distribution mean computed using single precision * `#11800 `__: Segmentation fault in scipy.odr for multidimensional independent... * `#11811 `__: pyflakes silently failing on travis-ci * `#11826 `__: Error with _fblas * `#11827 `__: \`fft.tests.test_numpy.test_multiprocess\` hangs on Python3.8... * `#11835 `__: tests with \`multiprocessing\` hang on Python 3.8 on macOS * `#11839 `__: linalg.expm returns nans with RuntimeWarning: overflow encountered... * `#11856 `__: Documentation of fit methods for \`weibull_min\` and \`exponweib\`... * `#11868 `__: Function always evaluated twice when using HessianUpdateStrategy... * `#11875 `__: Typo in the docstring of simps() * `#11877 `__: kmeans2 '++' method is orders of magnitude slower than sklearn.cluster.KMeans() * `#11884 `__: The upper code lines are dead code * `#11886 `__: Array shape mismatch in scipy.optimize * `#11892 `__: BUG: stats: Incorrect handling of edges cases by ttest_rel and... * `#11908 `__: LinearOperator should have ndim attribute * `#11910 `__: Documentation missing for what M is in init argument * `#11922 `__: macOS actions CI has started failing in last couple of days. * `#11928 `__: DOC: signal: Wrong description for sepfir2d, cspline2d, qspline2d * `#11944 `__: curve_fit documentation unclear on default value of absolute_sigma * `#11945 `__: Add a (potentially temporary) py.typed file? * `#11949 `__: ValueError 'k exceeds matrix dimensions' for sparse.diagonal()... * `#11951 `__: BUG: asv benchmark failed because of cython version * `#11967 `__: BLD: Azure windows runs complain about drives * `#11973 `__: oaconvolve(a,b,'same') differs in shape from convolve(a,b,'same')... * `#12002 `__: pybind11 license * `#12003 `__: MAINT: circular SphericalVoronoi input * `#12015 `__: Reordering of CSC matrix breaks when you go above int32 limits * `#12031 `__: Documentation Rendering Issues Visible in CircleCI Artifacts * `#12037 `__: MAINT, CI: new Cython 3.0a4 issue * `#12087 `__: DOC: some odr models are missing docs * `#12119 `__: signal.fftconvolve no longer convolves types f8 and numpy.float64 * `#12149 `__: Documentation of Rosenbrock function * `#12173 `__: Large memory usage when indexing sparse matrices with \`np.ix_\` * `#12178 `__: BUG: stats: Some discrete distributions don't accept lists of... * `#12220 `__: BUG, REL: gh_lists.py compromised scraping * `#12239 `__: BUG: median absolute deviation handling of nan * `#12301 `__: integer overflow in scipy.sparse.sputils.check_shape when matrix size > 2^32 * `#12314 `__: scipy.spatial.transform.Rotation multiplication does not normalize quaternion Pull requests for 1.5.0 - ----------------------- * `#6510 `__: Add Eigenvalue Range Functionality for Symmetric Eigenvalue Problems * `#9525 `__: BUG: SuperLU 'NATURAL' order applies a column permutation * `#9634 `__: Add the number of Jacobian evaluations to the output of L-BFGS-B. * `#9719 `__: ENH: Added kstwo probability distribution for two-sided one-sample... * `#9783 `__: WIP: optimize: added (dense) interpolative decomposition redundancy... * `#10053 `__: Adding docstring to weibull_min and weibull_max based on issue... * `#10136 `__: DEP: Add warning to linprog_verbose_callback * `#10380 `__: ENH: add geometric_slerp * `#10602 `__: MAINT: optimize: refactor common linprog arguments into namedtuple * `#10648 `__: Bounds for the Powell minimization method * `#10673 `__: ENH: approx_fprime --> approx_derivative * `#10759 `__: ENH: calculation of region areas in spatial.SphericalVoronoi * `#10762 `__: BENCH: optimize: more comprehensive linprog benchmarking * `#10796 `__: ENH exact p-values of wilcoxon test in scipy.stats * `#10797 `__: ENH: linalg: LU with full pivoting (wrappers for ?getc2/?gesc2) * `#10824 `__: ENH: Fast gaussian kernel estimator * `#10942 `__: BUG: prevent bound violation in L-BFGS-B optimize method * `#11003 `__: ENH: add scipy.linalg.convolution_matrix * `#11023 `__: improving error message for cubic-interpolate with duplicates * `#11045 `__: MAINT: make bdt{r,rc,ri}() functions accept double n,k args +... * `#11063 `__: Fix documentation error in optimize.minimize * `#11069 `__: ENH: stats.dlaplace.rvs improvements * `#11071 `__: DOC: Added examples to maximum_position in ndimage * `#11075 `__: DOC: Update stylistic consistency in multiple files * `#11097 `__: BUG: stats: fixing chisquare to return correct results for arrays... * `#11110 `__: ENH: special: Cythonise erfinv, erfcinv * `#11112 `__: BUG: special: Return NaN outside the domain of \`eval_hermite\` * `#11114 `__: BUG: special: fix \`hyp1f1\` for nonnegative integral \`a\` and... * `#11115 `__: DOC: special: add docstrings for \`kei\`, \`ker\`, \`keip\`,... * `#11130 `__: ENH: support for circular input * `#11136 `__: BUG: expm handling of empty input * `#11138 `__: DOC: stylistic consistency, punctuation, etc. * `#11139 `__: MAINT: cluster: use cython_blas, remove handwritten BLAS wrappers * `#11146 `__: DOC: update docs on bp parameter for detrend * `#11151 `__: DOC: special: add docstrings for \`bei\`, \`ber\`, \`beip\`,... * `#11156 `__: ENH: add input validation for ellipord. * `#11157 `__: DOC: stylistic revision, punctuation, consistency * `#11160 `__: ignore warning on 0 \* inf in basin hopping * `#11162 `__: DOC: minor stylistic revision, undo changes * `#11164 `__: ENH/ BUG: Pydata sparse equality * `#11171 `__: Fix dtype validation of "seuclidean" metric V parameter * `#11177 `__: BUG: stats: Improve genpareto stats calculations. * `#11180 `__: MAINT: stats: Some clean up in test_distributions.py. * `#11187 `__: ENH: add functionality log_softmax to SciPy.special. * `#11188 `__: MAINT: add rvs method to argus in scipy.stats * `#11196 `__: DOC: special: add to docstrings of Kelvin zeros functions * `#11202 `__: BUG: fix edge counting in shortest_path * `#11218 `__: BUG: scipy/interpolate: fix PPoly/Cubic\*Spline roots() extrapolation... * `#11225 `__: Add a warning to constant input for spearmanr() function * `#11226 `__: Speed up of interior-point method for cholesky solver * `#11229 `__: BUG: Explicit dtype specification in _upfirdn.py * `#11230 `__: Additional citation for optimize tutorial * `#11231 `__: Adds SLSQP test for duplicate f-evals (#10738) * `#11236 `__: MAINT: Improved error message for Wn range in iirfilter. * `#11245 `__: ENH: optimize: dense redundancy removal routine optimizations * `#11247 `__: MAINT: Remove _lib/_numpy_compat.py * `#11248 `__: BUG: rv_discrete.ppf() to handle loc * `#11251 `__: DOC: add reference for linesearch zoom algorithm * `#11253 `__: BUG: fix kendalltau issue where p-value becomes >1 * `#11254 `__: MAINT: make special.factorial handle nan correctly * `#11256 `__: DOC: Updated documentation for scipy.linalg.qr * `#11265 `__: Fix: Can no longer slice csr_matrix in 1.3.0 * `#11267 `__: BUG: Rework the scaling in the ks_2samp two-sided exact test. * `#11268 `__: DOC: example of NonLinearConstraint * `#11269 `__: Fix: Sparse matrix constructor data type detection changes on... * `#11276 `__: BLD: update minimum Python, NumPy, Cython, Pybind11 versions * `#11277 `__: MAINT: Cleanup conditionals for unsupported numpy verisons * `#11278 `__: MAINT: Cleanup stats.iqr workarounds for unsupported NumPy versions * `#11282 `__: TST/CI: improve traceback formatting for test failures * `#11284 `__: fix docs & behavior for mode sequences in ndimage filters * `#11285 `__: DOC: special: complete the docstrings of Chi-square functions * `#11286 `__: BUG: make loadmat/savemat file opening close resources correctly * `#11287 `__: CI: skip Azure and TravisCI builds on merges and direct pushes... * `#11288 `__: DOC: Fix import in scipy.io.wavfile.read sample code * `#11289 `__: BUG: Use context manager for open * `#11290 `__: MAINT: Remove _lib._version in favour of _lib._pep440 * `#11292 `__: DOC: special: add docstrings for various convenience functions * `#11293 `__: DOC: special: fix typo in \`chdtri\` docstring * `#11296 `__: DOC: special: add to docstrings of Bessel zeros and derivatives * `#11297 `__: DOC: special: add parameters/returns sections for Bessel integrals * `#11300 `__: MAINT: Update vendored uarray version * `#11301 `__: CI: azure conditions should require succeeded() * `#11302 `__: ENH: build infrastructure for ILP64 BLAS + ARPACK conversion * `#11303 `__: DOC: special: fix typo in \`besselpoly\` docstring * `#11304 `__: ENH: MAINT: Rewrite of eigh() and relevant wrappers * `#11306 `__: TST: skip test_aligned_mem linalg test that is crashing on ppcle64 * `#11307 `__: MAINT: Fix typo 'solutuion' -> 'solution' * `#11308 `__: ENH: do not create 1d array out of a scalar * `#11310 `__: MAINT: clean up object array creation, scalar/1d confusion * `#11311 `__: DOC: Specify custom callable option for metric in cluster.hierarchy.fclusterdata * `#11316 `__: BUG: special: fix behavior for \`rgamma\` zeros * `#11317 `__: BUG: fix floating-point literal comparisons under C99 * `#11318 `__: TST: optimize: mark two linprog tests for skipping * `#11320 `__: BUG: Include \`int64_t\` declaration to \`rectangular_lsap.cpp\` * `#11330 `__: MAINT: Update vendored pypocketfft version * `#11333 `__: BUG: directed_hausdorff subset fix * `#11335 `__: [ENH] sparse: Loosen check for sparse outer indexing fast path * `#11337 `__: Undefined name 'e' in pavement.py * `#11338 `__: scipyoptdoc.py: Remove unused variable 'sixu' * `#11340 `__: xrange() was removed in Python 3 in favor of range() * `#11342 `__: range() was removed in Py3 in _binned_statistic.py * `#11343 `__: BUG: constants: fix 'exact' values table * `#11347 `__: ENH: add input validation function and apply it to needed functions * `#11348 `__: MAINT: remove six.string_types usages * `#11349 `__: MAINT: minor doc fix _minimize_trustregion_constr * `#11353 `__: MAINT: py3 remove various six usages * `#11358 `__: ENH: optimize: Use CSR format instead of LIL for speed * `#11362 `__: MAINT: sys.version_info >= 3.5 * `#11364 `__: ENH: cache square of sums for f_oneway * `#11368 `__: ENH: add optional argument, "include_nyquist", for freqz() * `#11372 `__: BENCH: optimize: added linprog presolve benchmarks * `#11376 `__: ENH: Add wrapper for ?gttrf/?gttrs * `#11377 `__: MAINT: Remove Python 2 code from tools/authors.py * `#11378 `__: ENH (WIP): Python wrapper for ?tbtrs * `#11379 `__: MAINT: Remove six.with_metaclass from benchmarks/cython_special.py * `#11380 `__: BUG: sparse/isolve: bicg and qmr don't treat x0 correctly * `#11382 `__: MAINT: remove error throw in binned_statistic_dd() on non-finite... * `#11383 `__: MAINT: _lib: remove py2 compat shims in getargspec * `#11384 `__: MAINT: Use numpy scalar types directly * `#11385 `__: ENH: special: add spherical Bessel functions to \`cython_special\` * `#11389 `__: MAINT: line.startswith shouldn't be bytes * `#11393 `__: ENH: Speed up truncnorm's ppf()and rvs() methods * `#11394 `__: MAINT: Remove self._size (and self._random_state) from stats... * `#11395 `__: correction in error message (%d->%g format) * `#11396 `__: DOC: revert gh10540, removing mtrand * `#11397 `__: MAINT: differential_evolution accepts np.random.Generator * `#11402 `__: ENH: stats can use np.random.Generator * `#11404 `__: ENH: add docstring of butter() for transfer function syntax problem * `#11405 `__: DOC: Fix "see also" for SmoothBivariateSpline * `#11408 `__: ENH: Add a \`plan\` argument to FFT functions in \`scipy.fft\` * `#11411 `__: MAINT: check minimize duplicate evaluations * `#11418 `__: ENH: Linalg: Python wrapper for ?geqrfp * `#11419 `__: TST: Python 3.7 mac OS gcc multibuild fix * `#11423 `__: ENH: Add tool to lint diffs * `#11425 `__: FIX: _array_newton should preserve complex inputs * `#11426 `__: MAINT: licence for global optimization benchmarks * `#11431 `__: Make median_absolute_deviation scale argument aligned w/iqr * `#11432 `__: Fix error message typo * `#11433 `__: DOC: Remove L from longs * `#11434 `__: MAINT: Python3 improvements to refguide_check.py * `#11435 `__: DOC: Update runtest --parallel help * `#11436 `__: MAINT: Remove checks for sys.version < 3.5 * `#11437 `__: DOC: Fix documentation issue * `#11439 `__: Support path objects (PEP 519) in mmio functions * `#11440 `__: correct bounds pass in run_dualannealing for benchmarks/optimize.py * `#11443 `__: BENCH: optimize_linprog remove ImportError exception * `#11453 `__: BUG: sparse: convert csc/csr indices to int64 as needed * `#11454 `__: DOC: Remove caveat on \`maximum_bipartite_matching\` * `#11455 `__: BUG: Fix _lib._util.getargspec_no_self lack of KEYWORD_ONLY support. * `#11456 `__: Implementation of khatri_rao product * `#11459 `__: BUG: fix augmentation being broken in maximum_bipartite_matching * `#11461 `__: MAINT: minor spelling corrections in comments in SciPy.sparse.linalg.arpack * `#11467 `__: [MRG] Make result data type of KDE evaluation like in the input... * `#11469 `__: Update integrate.quad documentation * `#11472 `__: Fixed result typo * `#11476 `__: DOC: stats: Copy-edit the anderson docstring. * `#11478 `__: ENH: avoid unnecessary array copies in matrix product * `#11481 `__: BUG: Make special.hyperu return nan if any argument is nan * `#11483 `__: BUG: Fixed \`_kpp\` initialization on \`scipy.cluster.vq\`, closing... * `#11485 `__: ENH: Update docstring of class KrylovJacobian to fix #2744 * `#11486 `__: BUG: make special.eval_hermite return nan if second argument... * `#11487 `__: ENH: improve docstring of correlate and correlate2d to fix #1968 * `#11488 `__: FIX: change "func -> fun" of scipy.optimize _root.py to solve... * `#11489 `__: BUG: fixes typo introduced in PR #11253 in stats.mstats.kendalltau() * `#11490 `__: DOC: fix typo in scipy/io/matlab/mio4.py * `#11495 `__: MAINT: refactor slsqp to fix issue in callback function * `#11498 `__: [DOC] mention graph cuts in maximum flow docstring * `#11499 `__: DOC: Improve documentation of scipy.signal.signaltools.wiener * `#11506 `__: DOC: Fix typo in documentation of scipy.stats.morestats * `#11508 `__: ENH: avoid copy on sparse __init__ when dtype is given * `#11509 `__: ENH: avoid unnecessary array copies in matrix product (again) * `#11510 `__: [DOC] An ex. for creating arbitrary size tri-diagonal * `#11511 `__: TST: pin numba for Travis/sparse * `#11513 `__: TST: disable NumPy cache dir ppc64le * `#11514 `__: BUG: make special.eval_genlaguerre return nan if passed nan * `#11517 `__: ENH: improve sparse.lil.tocsr performance * `#11519 `__: Fix fresnel documentation * `#11520 `__: BUG: make special.eval_gegenbauer return nan if passed nan * `#11524 `__: ENH: Cosine Sine Decomposition * `#11526 `__: BUG: fix SLSQP max iteration setting to fix #4921 * `#11527 `__: ENH: improve docstring of weibull_min_gen and weibull_max_gen... * `#11530 `__: MAINT: Removed 3 unused imports, 3 unused assignments from ndimage. * `#11531 `__: DOC: fix typos in bdtr and bdtrc from gh PR 11045 * `#11532 `__: MAINT: Fixed several unused imports and unused assignments from... * `#11533 `__: MAINT: Fixed about 100 unused imports, unused assignment warnings... * `#11534 `__: FIX: Allow non-native byte order inputs to scipy.fft * `#11535 `__: MAINT: Fixed several unused imports in _lib. * `#11536 `__: MAINT: Fixed several unused imports and unused assignments in... * `#11537 `__: MAINT: Removed an unused import in scipy/constants. * `#11538 `__: MAINT: Fixed several unused imports in scipy/fft. * `#11539 `__: MAINT: Fixed several unused imports and unused assignments in... * `#11540 `__: MAINT: Fixed two unused imports in scipy/misc. * `#11541 `__: MAINT: Fixed several unused imports and unused assignments in... * `#11542 `__: MAINT: Fixed an unused import in scipy/odr. * `#11543 `__: MAINT: Fixed several unused imports and unused assignments in... * `#11544 `__: MAINT: Fixed unused imports and unused assignments in scipy/integrate. * `#11545 `__: MAINT: Removed unused imports and fixed unused assignments in... * `#11546 `__: MAINT: Removed unused imports; fixed unused assignments in scipy/signal. * `#11547 `__: MAINT: Removed unused imports; fixed unused assignments in scipy/spatial * `#11548 `__: MAINT: Removed unused imports; fixed unused assignments in scipy.sparse. * `#11549 `__: MAINT: Replace xrange with range * `#11560 `__: MAINT: stats: remove an _argcheck call * `#11573 `__: MAINT: Removed unused imports; fixed unused assignments in scipy/stats. * `#11574 `__: MAINT: Small change to \`optimize.nnls\` error messages. * `#11575 `__: MAINT: Update sytrd/hetrd tests * `#11582 `__: MAINT: fix typo in quadpack.py closes #11448 * `#11585 `__: TST: add openblas_support.py * `#11587 `__: BUG: Differential evolution with LinearConstraint with sparse... * `#11588 `__: MAINT: Fully display problem size in lsmr/lsqr. * `#11589 `__: MAINT: Remove Python 2 workarounds * `#11590 `__: MAINT: Remove Python2 module init * `#11605 `__: Standardization of bounds in _linprog_util.py * `#11608 `__: BUG: fix use of is in DE callback * `#11614 `__: TST, MAINT: TestCtypesQuad skip with pytest * `#11619 `__: ENH: add nan_policy argument and functionality to stats.mstats.winsorize * `#11621 `__: MAINT: Cleanup uses of PY_VERSION_HEX, NPY_PY3K in ndimage * `#11622 `__: MAINT: Cleanup uses of PY_VERSION_HEX, NPY_PY3K in sparse * `#11623 `__: MAINT: Remove unnecessary 'from __future__ import ...' statements * `#11626 `__: MAINT: Cleanup uses of PY_VERSION_HEX * `#11627 `__: ENH: add analytic formula for normal moments * `#11628 `__: MAINT, TST: adjust azure for matplotlib release * `#11631 `__: Revert to old behaviour for constant cost matrices in \`linear_sum_assignment\` * `#11632 `__: MAINT: Define ARRAY_ANYORDER with DEF instead of cdef * `#11639 `__: BUG: interpolate/interp1d: fail gracefully on all-nan inputs * `#11640 `__: MAINT: Fix BLAS3 trmm wrapper for "side" arg * `#11642 `__: TST, MAINT: remove dead code in Travis CI * `#11643 `__: MAINT: fix conversion in binom_test * `#11645 `__: MAINT: Assorted clean up. * `#11646 `__: MAINT: Remove unnecessary 'from __future__ import ...' statements * `#11647 `__: DOC: document return_all arguments * `#11648 `__: Perform geometric slerp in quaternion space * `#11651 `__: DOC: Update paper URL in lambertw documentation * `#11653 `__: PERF: Switch to C++ STL std::nth_element * `#11655 `__: MAINT: Remove Python2 cStringStream * `#11657 `__: ENH: Add wrapper for ?pttrf/?pttrs * `#11664 `__: ENH: Add wrapper for ?gejsv * `#11665 `__: ENH: Add wrapper for ?pteqr * `#11667 `__: BUG: Non-central Fisher distribution (fix nan-values when nc=0) * `#11668 `__: ENH: Add wrapper for ?gtsvx * `#11671 `__: TST, CI: restore Azure temporarily * `#11672 `__: Add warning to medfilt when array size < kernel_size * `#11674 `__: TST: bump test precision for two np.dot related linalg tests. * `#11675 `__: MAINT: pycodestyle clean-up * `#11677 `__: ENH: Add wrapper for ?ptsvx * `#11679 `__: BENCH: cKDTree benchmarks added: balanced/unbalanced tree (related... * `#11680 `__: MAINT: rng_integers allows RandomState.randint or Generator.integers * `#11683 `__: BUG: fix mode='mirror' on length 1 axes * `#11684 `__: BUG: fix scipy.special.voigt_profile * `#11687 `__: MAINT: sparse.linalg: avoid importing from \`np.core\` * `#11688 `__: ENH: mypy: get specific about ignoring missing imports * `#11690 `__: MAINT: mypy: fix errors about incompatible types in lists * `#11692 `__: MAINT: mypy: fix remaining type errors * `#11694 `__: TST, MAINT: bump to OpenBLAS 0.3.9 stable, raise tol for Win... * `#11697 `__: DOC: fix pdf of norminvgauss in scipy.stats * `#11701 `__: MAINT: special: add rudimentary types for \`_ufuncs\` extension... * `#11702 `__: BUG: Fixed a post-merge bug for eigh() * `#11703 `__: Improves docstring with consistent L2-norm * `#11705 `__: DOC: Slerp the SphericalVoronoi docstring * `#11706 `__: ENH: mypy: add \`--mypy\` option to \`runtests.py\` * `#11710 `__: ENH: Modified stats.kstest() to use the exact stats.kstwo.sf()... * `#11715 `__: DOC: add .. versionadded:: to as_matrix/from_matrix in spatial/transf? * `#11716 `__: BENCH: fix benchmark imports for \`\`optimize_linprog.py\`\` * `#11721 `__: MAINT: io: Remove now-unnecessary \`# type: ignore\` * `#11722 `__: MAINT: mypy: remove mpmath from the ratchet * `#11726 `__: Handle constant input for scipy.stats.f_oneway * `#11729 `__: BENCH: optimize: added infeasible benchmarks for linprog * `#11731 `__: fix inaccurate information about Mac OS compiler (#11696) * `#11733 `__: Fix inaccurate docstring example of HalfspaceIntersection * `#11734 `__: Doc: fix inaccurate docstring of SmoothBivariateSpline. * `#11735 `__: Bug: stats: fix wrong shape from median_absolute_deviation for... * `#11736 `__: ENH: add input validations and its tests for FITPACK in fitpack2.py * `#11737 `__: BUG: Prevent crashes due to MKL bug in ?heevr * `#11739 `__: MAINT: special: add type stubs for \`_test_round.pyx\` * `#11740 `__: MAINT: special: remove unused specfun f2py wrappers * `#11741 `__: BUG: fix small tolerances handling for minpack and add a test. * `#11743 `__: Doc: fix docstring of rfft, rfft2, rfftn, irfft, irfft2, irfftn... * `#11744 `__: MAINT: Remove unused py3k.h code * `#11745 `__: DOC: stats: Clean up ncf documentation. * `#11748 `__: MAINT: special: type \`cython_special\` as \`Any\` * `#11750 `__: MAINT: type hints for \`_spherical_voronoi\` * `#11752 `__: DOC: fix docstring of scipy.optimize.least_squares * `#11753 `__: ENH: add input validation for dendrogram and a test. * `#11755 `__: MAINT: Replace uses of tostring with tobytes * `#11757 `__: ENH: improve binned_statistics_2d performance. * `#11759 `__: ENH: optimize: add HiGHS methods to linprog * `#11760 `__: MAINT: Remove FileStream replaced by GenericStream * `#11761 `__: MAINT: Replace npy_3kcompat.h shims * `#11765 `__: TST: Speedup test_pascal which is VERY slow on Azure * `#11766 `__: TST: speed up differential_evolution L8 test * `#11767 `__: Change comment in continuous rv gamma fit function * `#11776 `__: Add domain option for resample. * `#11784 `__: BUG: Fixed calculation of nonzero elements in scipy.sparse.random * `#11786 `__: ENH: stats: add axis keyword argument to scipy.stats.rankdata * `#11789 `__: Doc: fix docstring of scipy.spatial.chebyshev * `#11792 `__: DOC: dev: add guidelines for developing public Cython APIs * `#11794 `__: MAINT: add comments explaining a problem in cython_optimize organization * `#11796 `__: DOC: add a note about precision losing in csgraph.minimum_spanning_tree... * `#11797 `__: ENH: Allow negative \`axis\` in \`interpolate.BSpline\`. Also... * `#11798 `__: Add simplify_cells parameter to scipy.io.loadmat * `#11801 `__: MAINT, DOC: minor changes of ratio-of-uniforms in scipy.stats * `#11802 `__: BUG: fix scipy.odr to handle multidimensional independent and... * `#11803 `__: scipy.stats.trapz: Use analytic formulas for stats and entropy. * `#11808 `__: DOC: add Examples in the scipy.interpolate.interpn docstring. * `#11809 `__: Duplicate entries are added together in csr_matrix constructor * `#11813 `__: MAINT: bump pyflakes to version 2.1.1 * `#11814 `__: BUG: scipy.sparse.csr doctest failing with incorrect output value * `#11817 `__: DOC: add Examples in the scipy.optimize.leastsq docstring * `#11820 `__: ENH: Raise an error on incorrect bounds format in optimize.fmin_l_bfgs_b * `#11822 `__: CI: add github actions for macOS * `#11824 `__: DOC: add Examples in scipy.optimize.line_search docstring (line_search_wolfe2) * `#11830 `__: TST: Always use fork for multiprocessing in fft tests * `#11831 `__: DOC: add Examples and Returns in scipy.misc.central_diff_weights... * `#11832 `__: DOC: stats: Some small corrections to a couple docstrings. * `#11833 `__: BUG: Fix compiler_name when there are paths used in flags * `#11836 `__: MAINT: re-introduce multiprocessing tests on Python3.8 * `#11837 `__: Doc: add Examples in scipy.optimize.fsolve docstring * `#11838 `__: Doc: add Examples in scipy.sparse.linalg.minres docstring * `#11840 `__: BUG: sparse.linalg: fix overflow in expm intermediate computation * `#11842 `__: BLD: fix build with gfortran 10 * `#11843 `__: MAINT: Simplify floats in constants.py * `#11847 `__: DOC: add a tutorial of scipy.optimize.linprog * `#11849 `__: ENH: speed up geninvgauss by using cython * `#11852 `__: CI: remove osx from travisCI * `#11857 `__: BUG: Change parameter fc of gausspulse to float. * `#11861 `__: order = degree + 1 for splines * `#11863 `__: Make g77 ABI wrapper work with gfortran ABI lapack * `#11866 `__: MAINT: add type ignores to sympy and matplotlib imports * `#11867 `__: CI: Add arm64 in travis-ci * `#11869 `__: DOC: signal: Add an example to the lsim2 docstring. * `#11870 `__: DOC: signal: Use impulse instead of impulse2 in the impulse example... * `#11871 `__: ENH: type ufuncs in special as ufuncs instead of Any * `#11872 `__: BUG: avoid recomputing in scipy.optimize.optimize.MemoizeJac * `#11873 `__: DOC: signal: Fix ODE in impulse and impulse2 docstrings. * `#11874 `__: DOC: add Examples of docstring for scipy.interpolate.approximate_taylor_polynomial * `#11878 `__: DOC: fixed a typo under scipy/integrate/quadrature.py * `#11879 `__: BUG: Fix index arrays overflow in sparse.kron * `#11880 `__: DOC: stats: Add Examples for bartlett, fligner, levene. * `#11881 `__: MAINT: normalise numpy-->np in optimize.py * `#11882 `__: DOC: add Examples for scipy.io.readsav docstring. * `#11883 `__: DOC: add Returns and Examples for scipy.ndimage.correlate() docstring * `#11885 `__: BUG: stats: Handle multidimensional arrays in f_oneway, and more. * `#11889 `__: DOC: signal: Unify lsim and lsim2 examples. * `#11896 `__: BUG: stats: Fix handling of size 0 inputs for ttest_rel and ttest_ind. * `#11897 `__: DOC: Remove misleading default values from fit method * `#11898 `__: MAINT: LinearVectorFunction.J is ndarray closes #11886 * `#11902 `__: BUG: linalg: test_heequb failure * `#11904 `__: fix real-to-real transforms for complex inputs and overwrite_x=True * `#11906 `__: DOC: stats: fix error caused by trapz docstring * `#11907 `__: BUG: stats: fixed SEGFAULT from Issue #9710 * `#11912 `__: ENH: Respect matplotlib color palette with hierarchy/dendrogram. * `#11914 `__: DOC: refine doc for spatial.distance.squareform * `#11915 `__: ENH: Ndim linear operator * `#11919 `__: ENH: expose "window_size" parameter in find_peaks_cwt() * `#11920 `__: DOC: explain M, diffev * `#11923 `__: CI: macOS install swig closes #11922 * `#11924 `__: DOC: add Examples for scipy.optimize.bracket() docstring * `#11930 `__: DOC: add Examples and clean up for signal.qspline1d and signal.qspline_eval... * `#11931 `__: DOC: add Examples for sparse.linalg.bicg docstring. * `#11933 `__: DOC: Add original reference for Yao-Liu objective functions * `#11934 `__: DOC, MAINT: mailmap update * `#11935 `__: DOC: make scipy.stats.mode documentation reflect that the function... * `#11936 `__: ENH: special: add type stubs for \`orthogonal.py\` * `#11937 `__: DOC: Add docstring examples to fft2, ifft2, io.savemat * `#11938 `__: MAINT: add helper function for deprecating Cython API functions * `#11942 `__: MAINT: ignore conditional import in _lib/_util * `#11943 `__: MAINT: special: add types for geterr/seterr/errstate * `#11946 `__: MAINT: add py.typed marker * `#11950 `__: TST:MAINT: separated and stabilized heequb tests * `#11952 `__: DOC: update toolchain roadmap for py38, C99, C++11/14 * `#11957 `__: MAINT: Use np.errstate context manager instead of np.seterr. * `#11958 `__: MAINT: interpolate: Remove some trailing spaces. * `#11960 `__: MAINT: Cleanup Python2 compatibility code * `#11961 `__: MAINT: Remove numpy/npy_3kcompat.h from _superluobject.c * `#11962 `__: DOC: Fix type of \`codes\` in docstring of \`_vq._vq()\` * `#11964 `__: MAINT: Cleanup unused IS_PYPY * `#11969 `__: DOC: add Examples and fix docstring for special.airye * `#11970 `__: BUG: sparse: 'diagonal' of sparse matrices fixed to match numpy's... * `#11974 `__: BUG: Reshape oaconvolve output even when no axes are convolved * `#11976 `__: MAINT: add logo for github actions * `#11977 `__: CI: test bleeding edge Python * `#11979 `__: DOC: add Examples for stats.ranksums() docstring. * `#11982 `__: Fix KMeans++ initialisation slowness * `#11983 `__: DOC: add Examples for stats.mstats.argstoarray() docstring. * `#11986 `__: Avoid bugs in ndimage when the output and input arrays overlap... * `#11988 `__: ENH: Override fit method of Laplace distribution with Maximum... * `#11993 `__: TST, CI: Azure Windows path fixups * `#11995 `__: MAINT, CI: remove custom mingw Azure * `#11996 `__: DOC: add Examples and fix pep warning for fft.set_global_backend... * `#11997 `__: MAINT, CI: Azure OpenBLAS simplify * `#11998 `__: BENCH: Run against current HEAD instead of master * `#12001 `__: ENH: stats: Implement _logpdf for the maxwell distribution. * `#12004 `__: DOC: add examples for integrate.quad_vec() and integrate.quad_explain() * `#12005 `__: MAINT: Use helper functions in ?tbtrs tests * `#12007 `__: MAINT: updated LICENSES_bundled for pybind11 and six * `#12008 `__: DOC: roadmap update * `#12009 `__: ENH: optimize: support 64-bit BLAS in lbfgsb * `#12010 `__: ENH: sparse.linalg: support 64-bit BLAS in isolve * `#12012 `__: DOC: add Examples for interpolate.barycentric_interpolate(),... * `#12013 `__: MAINT: remove last uses of numpy.dual * `#12014 `__: CI: print 10 slowest tests * `#12020 `__: MAINT: Removed handling of circular input in SphericalVoronoi * `#12022 `__: DOC : added default value of absolute_sigma to False in scipy.optimize.curve_fit docs * `#12024 `__: DOC: add Examples for io.hb_read() and io.hb_write() * `#12025 `__: MAINT: Remove numpy/npy_3kcompat.h from nd_image * `#12028 `__: Spelling correction * `#12030 `__: ENH: optimize/_trlib: support ILP64 blas/lapack * `#12036 `__: MAINT: Add some generated C files .gitignore * `#12038 `__: MAINT, CI: Travis rackcdn->conda.org * `#12039 `__: MAINT: signal: Lower the resolution of the plots in the chirp... * `#12040 `__: DOC: add Examples for ndimage.spline_filter1d() and spline_filter()... * `#12044 `__: MAINT: combine apt-get update and apt-get install into one RUN * `#12045 `__: TST: Reduce size of test_diagonal_types to speed up tests * `#12046 `__: MAINT: Remove unused npy_3kcompat.h * `#12047 `__: MAINT: Cython 3.0 compat * `#12050 `__: DOC: add download number badges of PyPI and conda-forge in README.rst * `#12052 `__: DOC: add Examples odr.models.polynomial() and fix odr.odr docstring... * `#12056 `__: ENH: Modifies shapiro to return a named tuple * `#12057 `__: Adding my name into THANKS.txt * `#12060 `__: TST: Reduce number of test_diagonal_types configs * `#12062 `__: TST: Change dec.slow to pytest.mark.slow * `#12068 `__: ENH: Modifies jarque_bera to return a named tuple * `#12070 `__: MAINT, CI: appveyor rack->conda.org * `#12072 `__: TST: filter out factorial(float) deprecation warning * `#12078 `__: TST: Skip test on colab with large memory alloc * `#12079 `__: DOC: Remove Python2 reference from stats tutorial * `#12081 `__: DOC: add Examples docstring for optimize.show_options() * `#12084 `__: BUG: interpolate: fix BarycentricInterpolator with integer input... * `#12089 `__: ENH: spatial/qhull: support ILP64 Lapack * `#12090 `__: ENH: integrate: support ILP64 BLAS in odeint/vode/lsoda * `#12091 `__: ENH: integrate: support ILP64 in quadpack * `#12092 `__: BUG: Fix dropping dt in signal.StateSpace * `#12093 `__: MAINT: Rollback python2.6 workaround * `#12094 `__: MAINT: \`openblas_support\` hash checks * `#12095 `__: MAINT: ndimage: change \`shares_memory\` to \`may_share_memory\` * `#12098 `__: Doc: change 4 model instances of odr to be instances of \`Model\`... * `#12101 `__: Removed more unused imports and assignments. * `#12107 `__: ENH: Area calculation for 2D inputs in SphericalVoronoi * `#12108 `__: MAINT: ensure attributes have correct data type in \`SphericalVoronoi\` * `#12109 `__: degree is not order in splines * `#12110 `__: ENH: More helpful/forgiving io.wavfile errors * `#12117 `__: BUG: fix newline * `#12123 `__: [MAINT] Fix error on PyData/Sparse import. * `#12124 `__: TST: Always test matmul now that Python3.5+ is required * `#12126 `__: TST: Cleanup unused matplotlib code. * `#12127 `__: DOC: update docstrings of signal.cspline2d, qspline2d, sepfir2d * `#12130 `__: MAINT: Fixing broken links with linkchecker * `#12135 `__: ENH: linalg: Add the function convolution_matrix. * `#12136 `__: MAINT: Cleanup np.poly1d hack * `#12137 `__: TST, CI: reproduce wheels 32-bit setup * `#12140 `__: TST: stats: add kstwo, ksone to slow tests. * `#12141 `__: Support 64-bit integer size in Fitpack * `#12151 `__: DOC: Correct Rosenbrock function sum * `#12159 `__: BUG: Fix length calculation in upfirdn * `#12160 `__: BUG: Fix M_PI * `#12168 `__: DOC: add an obsolete version checking javascript to doc release... * `#12171 `__: CI, MAINT: Azure OpenBLAS drive flip * `#12172 `__: ENH: Bounds for the Powell minimization method * `#12175 `__: BLD: support more Fortran compilers for ilp64 and macro expansion... * `#12179 `__: BUG: stats: A few distributions didn't accept lists as arguments. * `#12180 `__: MAINT: removed redundant import in SphericalVoronoi tests * `#12181 `__: DOC: for versionwarning don't use $.getScript * `#12182 `__: MAINT: random sampling on the hypersphere in SphericalVoronoi... * `#12194 `__: MAINT: Module and example cleanups for doc build * `#12202 `__: ENH: tool to DL release wheels from Anaconda * `#12210 `__: Remove py.typed marker (at least for the release) * `#12217 `__: BUG: stats: Fix handling of edge cases in median_abs_deviation. * `#12223 `__: BUG: stats: wilcoxon returned p > 1 for certain inputs. * `#12227 `__: BLD: Set macos min version when building rectangular_lsap * `#12229 `__: MAINT: tools/gh_lists.py: fix http header case sensitivity issue * `#12236 `__: DOC: Fix a couple grammatical mistakes in 1.5.0-notes.rst. * `#12276 `__: TST: skip `test_heequb`, it fails intermittently. * `#12285 `__: CI: split travis arm64 run into two * `#12317 `__: BUG: prevent error accumulation in `Rotation` multiplication * `#12318 `__: BUG: sparse: avoid np.prod overflow in check_shape * `#12319 `__: BUG: Make cobyla threadsafe * `#12335 `__: MAINT: Work around Sphinx bug Checksums ========= MD5 ~~~ 83399629fbdf226cc39ecf9edcaaa1bb scipy-1.5.0rc2-cp36-cp36m-macosx_10_9_x86_64.whl 2e20179935ac222779ce7feb5053d4d7 scipy-1.5.0rc2-cp36-cp36m-manylinux1_i686.whl c93b24eb2a9a5b616537a1230a1a3329 scipy-1.5.0rc2-cp36-cp36m-manylinux1_x86_64.whl 4f8875c17e2b13dca1f288d5e8c536a0 scipy-1.5.0rc2-cp36-cp36m-win32.whl 18ee197d5a7102d09cc27bc3a7d6c7b2 scipy-1.5.0rc2-cp36-cp36m-win_amd64.whl 3fa741b364d56dfb37e7a5318ea81cdf scipy-1.5.0rc2-cp37-cp37m-macosx_10_9_x86_64.whl b9d2b8a9c9cdd88bfd34ea4c095ab145 scipy-1.5.0rc2-cp37-cp37m-manylinux1_i686.whl 937f5564405efd5d7e37f45e50c00074 scipy-1.5.0rc2-cp37-cp37m-manylinux1_x86_64.whl 8ed7b36d990c32014840a2c024a56d82 scipy-1.5.0rc2-cp37-cp37m-win32.whl 97e4c3c6329e41351bbdf5552fce423f scipy-1.5.0rc2-cp37-cp37m-win_amd64.whl 53351605d7561ad5685d41cac1c6333b scipy-1.5.0rc2-cp38-cp38-macosx_10_9_x86_64.whl cc5ea53ee3a3777184b39bee92d6d432 scipy-1.5.0rc2-cp38-cp38-manylinux1_i686.whl 3b8b55fceaa1edb0db71c3db666f8696 scipy-1.5.0rc2-cp38-cp38-manylinux1_x86_64.whl af1129dc5f85f50446f337a643049b6f scipy-1.5.0rc2-cp38-cp38-win32.whl 6eea947704de9515fd9ec5b5d939ea1b scipy-1.5.0rc2-cp38-cp38-win_amd64.whl 62eeaab3889c2074e14515feaeee01c6 scipy-1.5.0rc2.tar.gz 980ac99f7de69ed0890b050594b1b0a4 scipy-1.5.0rc2.tar.xz db38ec76f7aa10f5241e14261c80c928 scipy-1.5.0rc2.zip SHA256 ~~~~~~ 388cc2b84cd8c93f20170fbd881ce70a6b0d74a48dab6ad5dd88d4bde342fb35 scipy-1.5.0rc2-cp36-cp36m-macosx_10_9_x86_64.whl 0bf8b1ac919b244bf75180e3cb1533444115925aaa5d002d0c7219dece02ccc8 scipy-1.5.0rc2-cp36-cp36m-manylinux1_i686.whl 94cd4bb489acc03b057364c4c3ed787df0672f945dabad7247aaabbac364b271 scipy-1.5.0rc2-cp36-cp36m-manylinux1_x86_64.whl 488b4ba42086b8911806b68685c17f80698a952bb6612579524af828e3bb6fc6 scipy-1.5.0rc2-cp36-cp36m-win32.whl c3362995c6416c934a93933e90d11131a82a01929ae2dd4f140cbcfa773280c7 scipy-1.5.0rc2-cp36-cp36m-win_amd64.whl 87d0fdc34ecf2acfaf147dc53d35c6842f6693732b929a59e1f29d2e73c1b576 scipy-1.5.0rc2-cp37-cp37m-macosx_10_9_x86_64.whl e25bead48bb9832295902cd858979130c225ab9c2d50769ab4236bbf1784ee60 scipy-1.5.0rc2-cp37-cp37m-manylinux1_i686.whl b460ebaa532e6084c53d3979b131b96679d9f0f714684ad5cfcfd7ee3026219d scipy-1.5.0rc2-cp37-cp37m-manylinux1_x86_64.whl bc9bad55c2a15ea02cb68af77f909e69e89929085609ca858db6d00b210fb937 scipy-1.5.0rc2-cp37-cp37m-win32.whl f394d423c10d58f89ddc7677cd91f77ad6e18e7d792830b037ab2ed669f204a2 scipy-1.5.0rc2-cp37-cp37m-win_amd64.whl 0a4bee8fec8144c1cd70a493cbaa2f8beb67728beb62e0a3c33e18fd3d3ab26e scipy-1.5.0rc2-cp38-cp38-macosx_10_9_x86_64.whl 666ae802a660f892606096daa3752b4d3ca67ed10e96e045fa7c4e298fcd87fa scipy-1.5.0rc2-cp38-cp38-manylinux1_i686.whl 4ad221d8475d6022e62110c3f4968e1a89fc4ed27bad152ed57e2b0a6c7bd107 scipy-1.5.0rc2-cp38-cp38-manylinux1_x86_64.whl a2c228b04a34d58fa12f6c9ac4849a0d18e0088669ab6634fd32af608cfc74ad scipy-1.5.0rc2-cp38-cp38-win32.whl 42a11f2b85323d6b2f6b07d64366c1a8c53e52317cf69223894031ea424a6500 scipy-1.5.0rc2-cp38-cp38-win_amd64.whl 38509c2ecb32f751e3b20ffdccd506880405c980ee569c094ba449fd130d3c19 scipy-1.5.0rc2.tar.gz d6e647e520d10e62c8138c025b0a89fbdb588c1bf6bc76eb6e90601fc1f27b8a scipy-1.5.0rc2.tar.xz fe8540e7c28a89f98a5c11f937d97832728d931f7d3a56b5217ac7b7c66d0858 scipy-1.5.0rc2.zip -------------- next part -------------- An HTML attachment was scrubbed... URL: From jacobr at ethz.ch Mon Jun 15 02:27:42 2020 From: jacobr at ethz.ch (Romain Jacob) Date: Mon, 15 Jun 2020 08:27:42 +0200 Subject: [SciPy-Dev] Adding non-parametric methods to scipy.stats In-Reply-To: References: <6a5dee0d-3d55-409d-6bf8-b86e3f465275@tik.ee.ethz.ch> <9ed88efe-5504-3d60-ab73-3ffc7cce1edf@tik.ee.ethz.ch> Message-ID: <3893d209-892f-b738-07ba-3a03aa4b502a@tik.ee.ethz.ch> On 13/06/2020 20:54, josef.pktd at gmail.com wrote: > On Fri, Jun 12, 2020 at 11:29 AM > wrote: > > On Fri, Jun 12, 2020 at 1:58 AM Romain Jacob > wrote: > > On 11/06/2020 20:54, Warren Weckesser wrote: >> On 6/11/20,josef.pktd at gmail.com wrote: >>> I think it would make a good and useful addition and fit into scipy.stats. >>> There are no pure confint functions yet, AFAIR. >> I agree with Josef and Matt, this looks like it would be a nice >> addition to SciPy. At the moment, I'm not sure what the API should >> look like. Romain, is the work that you've already done available >> online somewhere? >> >> Warren > > Yes, I have some functional implementation available here: > https://github.com/TriScale-Anon/triscale/blob/master/helpers.py#L397 > > > An implementation detail: > binom has cdf and ppf functions > My guess, not verified, is that we can just use binom.interval > > (at least I used those for similar cases) > > > I found my version again > https://github.com/statsmodels/statsmodels/issues/6562#issuecomment-592769480 > > > I guess that's the same for two sided confint as the references. > It doesn't have interpolation if that could be applied in this case. > I don't entirely follow what you mean here: that the building of the probabilities in these two lines( https://github.com/TriScale-Anon/triscale/blob/master/helpers.py#L438 and L439) can be built directly form binom without np.cumsum? That definitely correct (I actually have code also doing that somewhere). I did not know about the `interval` method. That's sound interesting indeed, but it's not 100% clear to me how the uniqueness problem is handled. I looked for the implementation of the method but couldn't find it in `binom`... I'm looking in the wrong place? Cheers, -- Romain > This will eventually end up in statsmodels, but I don't know yet > where. That's not a reason not to add it to scipy.stats. > > Josef > > > Josef > > There is quite some work to be done on formatting and > documentation to comply with the SciPy standards, but > functionally it's already there (and as you'll see, the method > is quite simple). > > Cheers, > -- > Romain > >>> I recently wrote a function for the confidence interval for the median, >>> mainly because I ran into the formulas that were easy to code. >>> related open issue: how do we get confidence intervals for QQ-plot. >>> >>> aside: I don't like "percent", I prefer quantiles in [0, 1]. See discussion >>> a while ago in numpy. >>> >>> Josef >>> >>> >>> On Thu, Jun 11, 2020 at 1:01 PM Matt Haberland >>> wrote: >>> >>>> OK, we should let our statistics experts weigh in on this. (I'm not >>>> actually one of them.) >>>> >>>> On Wed, Jun 10, 2020 at 10:46 PM Romain Jacob wrote: >>>> >>>>> I think a dedicated function makes more sense. This function takes as >>>>> input an array, a percentile and a confidence level, and returns the >>>>> corresponding one-sided confidence intervals. >>>>> >>>>> I quickly looked at the list of existing functions in scipy.stats but >>>>> did >>>>> not see any function in "summary statistics" that does similar things. So >>>>> I >>>>> would go for a new function. >>>>> On 10/06/2020 20:38, Matt Haberland wrote: >>>>> >>>>> Where do you envision this living in SciPy? In its own function, or >>>>> added >>>>> functionality to other functions e.g. scipy.stats.percentileofscore >>>>> >>>>> ? >>>>> >>>>> On Tue, Jun 9, 2020 at 11:12 PM Romain Jacob wrote: >>>>> >>>>>> On 09/06/2020 20:18, Matt Haberland wrote: >>>>>> >>>>>> Yes, I think we would be interested in confidence intervals, but I >>>>>> think >>>>>> the algorithm should be very well standard/cited, even if it's not the >>>>>> best/most modern. >>>>>> >>>>>> Yes definitely! We did not invented the method I am referring to, it a >>>>>> long-known approach (first proposed by Thompson in 1936 [1], extended >>>>>> later >>>>>> and commonly found in textbooks, eg [2,3]). This method is very simple, >>>>>> quite powerful, yet it has been largely overlooked in many scientific >>>>>> fields. I found no available implementation to facilitate its use (at >>>>>> least >>>>>> not in Python, there may be something in R, I have not looked). >>>>>> >>>>>> [1]https://www.jstor.org/stable/2957563 >>>>>> [2]doi.org/10.1002/0471722162.ch7 >>>>>> [3]https://perfeval.epfl.ch/ >>>>>> >>>>>> @WarrenWeckesser and I had planned to work on confidence intervals for >>>>>> the test statistics returned by our statistical tests >>>>>> . >>>>>> >>>>>> >>>>>> That is also definitely interesting, although I am not myself an expert >>>>>> in that area. I am glad to see that the complete list contains some >>>>>> non-parametric tests :-) >>>>>> >>>>>> Cheers, >>>>>> -- >>>>>> Romain >>>>>> >>>>>> >>>>>> On Mon, Jun 8, 2020 at 2:11 AM Romain Jacob wrote: >>>>>> >>>>>>> Hello everyone, >>>>>>> >>>>>>> I have been working for some time on the implementation of >>>>>>> non-parametric methods to compute confidence intervals for >>>>>>> percentiles. >>>>>>> There are some very interesting results in the literature (see e.g. a >>>>>>> nice >>>>>>> pitch in [1]) which I think it would be great to add to SciPy to make >>>>>>> them >>>>>>> more readily available. It also seems to be rather in line with >>>>>>> "recent" >>>>>>> discussions of the roadmap for scipy.stats [2]. >>>>>>> >>>>>>> I would be interested in contributing this. What do you think? >>>>>>> >>>>>>> Cheers, >>>>>>> -- >>>>>>> Romain >>>>>>> >>>>>>> [1]https://ieeexplore.ieee.org/document/6841797 >>>>>>> [2]https://github.com/scipy/scipy/issues/10577 >>>>>>> -- >>>>>>> Romain Jacob >>>>>>> Postdoctoral Researcher >>>>>>> ETH Zurich - Computer Engineering and Networks Laboratory >>>>>>> www.romainjacob.net >>>>>>> @RJacobPartner >>>>>>> Gloriastrasse 35, ETZ G75 >>>>>>> 8092 Zurich >>>>>>> +41 7 68 16 88 22 >>>>>>> _______________________________________________ >>>>>>> SciPy-Dev mailing list >>>>>>> SciPy-Dev at python.org >>>>>>> https://mail.python.org/mailman/listinfo/scipy-dev >>>>>>> >>>>>> -- >>>>>> Matt Haberland >>>>>> Assistant Professor >>>>>> BioResource and Agricultural Engineering >>>>>> 08A-3K, Cal Poly >>>>>> >>>>>> _______________________________________________ >>>>>> SciPy-Dev mailing >>>>>> listSciPy-Dev at python.orghttps://mail.python.org/mailman/listinfo/scipy-dev >>>>>> >>>>>> -- >>>>>> Romain Jacob >>>>>> Postdoctoral Researcher >>>>>> ETH Zurich - Computer Engineering and Networks Laboratory >>>>>> www.romainjacob.net >>>>>> @RJacobPartner >>>>>> Gloriastrasse 35, ETZ G75 >>>>>> 8092 Zurich >>>>>> +41 7 68 16 88 22 >>>>>> _______________________________________________ >>>>>> SciPy-Dev mailing list >>>>>> SciPy-Dev at python.org >>>>>> https://mail.python.org/mailman/listinfo/scipy-dev >>>>>> >>>>> -- >>>>> Matt Haberland >>>>> Assistant Professor >>>>> BioResource and Agricultural Engineering >>>>> 08A-3K, Cal Poly >>>>> >>>>> _______________________________________________ >>>>> SciPy-Dev mailing >>>>> listSciPy-Dev at python.orghttps://mail.python.org/mailman/listinfo/scipy-dev >>>>> >>>>> _______________________________________________ >>>>> SciPy-Dev mailing list >>>>> SciPy-Dev at python.org >>>>> https://mail.python.org/mailman/listinfo/scipy-dev >>>>> >>>> -- >>>> Matt Haberland >>>> Assistant Professor >>>> BioResource and Agricultural Engineering >>>> 08A-3K, Cal Poly >>>> _______________________________________________ >>>> SciPy-Dev mailing list >>>> SciPy-Dev at python.org >>>> https://mail.python.org/mailman/listinfo/scipy-dev >>>> >> _______________________________________________ >> SciPy-Dev mailing list >> SciPy-Dev at python.org >> https://mail.python.org/mailman/listinfo/scipy-dev > -- > Romain Jacob > Postdoctoral Researcher > ETH Zurich - Computer Engineering and Networks Laboratory > www.romainjacob.net > @RJacobPartner > Gloriastrasse 35, ETZ G75 > 8092 Zurich > +41 7 68 16 88 22 > _______________________________________________ > SciPy-Dev mailing list > SciPy-Dev at python.org > https://mail.python.org/mailman/listinfo/scipy-dev > > > _______________________________________________ > SciPy-Dev mailing list > SciPy-Dev at python.org > https://mail.python.org/mailman/listinfo/scipy-dev -- Romain Jacob Postdoctoral Researcher ETH Zurich - Computer Engineering and Networks Laboratory www.romainjacob.net @RJacobPartner Gloriastrasse 35, ETZ G75 8092 Zurich +41 7 68 16 88 22 -------------- next part -------------- An HTML attachment was scrubbed... URL: From shashaank.n at columbia.edu Tue Jun 16 15:38:35 2020 From: shashaank.n at columbia.edu (Shashaank N) Date: Tue, 16 Jun 2020 15:38:35 -0400 Subject: [SciPy-Dev] Merging firwin and firwin2 in scipy.signal Message-ID: Hi, I was looking at the detailed SciPy roadmap, and one of the improvements in scipy.signal is "merging firwin and firwin2 so firwin2 can be removed." If there is still interest in this, I can work on it. Thanks, Shashaank -------------- next part -------------- An HTML attachment was scrubbed... URL: From luis9699 at live.com.mx Wed Jun 17 18:56:33 2020 From: luis9699 at live.com.mx (Luis Lozano) Date: Wed, 17 Jun 2020 22:56:33 +0000 Subject: [SciPy-Dev] Translating Documentation into Spanish Message-ID: Hello, My name is Luis E. Lozano Marrujo. I am a native Spanish speaker who is interested in helping to translate some (most of that which I can translate) of the documentation into Spanish. And I have some doubts: Is there a project already that is translating the documentation into Spanish so that I can join? What kind of qualifications do I need? (I have already translated some technical books for my own learning and entertainment.) How do I start? Do I just start translating? If so, when I have something finished who do I send it to? Thanks for the attention and help. Also much thanks to all the people who develop this stuff! -------------- next part -------------- An HTML attachment was scrubbed... URL: From hans.dembinski at gmail.com Thu Jun 18 08:56:16 2020 From: hans.dembinski at gmail.com (Hans Dembinski) Date: Thu, 18 Jun 2020 14:56:16 +0200 Subject: [SciPy-Dev] Adding non-parametric methods to scipy.stats In-Reply-To: References: <6a5dee0d-3d55-409d-6bf8-b86e3f465275@tik.ee.ethz.ch> <9ed88efe-5504-3d60-ab73-3ffc7cce1edf@tik.ee.ethz.ch> Message-ID: <91A9C8F6-63B5-408C-9A1E-29EF4997FC37@gmail.com> Dear all, since there was no reply to my first attempt, I am repeat my message. Daniel Saxton and I are working on a Python library called `resample`, which implements the bootstrap and jackknife. We would like to work toward merging bootstrap functions into Scipy and it would be great to get some feedback about this. We would be pleased to collaborate with people who are already working on this in Scipy. We are both pretty decent programmers, knowledgable about statistics in general and the bootstrap in particular. Best regards, Hans > On 12. Jun 2020, at 16:16, Hans Dembinski wrote: > > I just joined the list, so I apologise for any etiquette-breaking in advance, but would like to inject here that I am collaborating with Daniel Saxton on `resample`, a library that implements the jackknife and bootstrap, which can be used - among many other things - to compute confidence intervals for quantiles/percentiles. > > https://github.com/dsaxton/resample > > We are currently working on interface and documentation and adding more unit tests and benchmarks, but `resample` is already the most complete library that implements resampling methods in Python. > > Seeing that https://github.com/scipy/scipy/issues/10577 explicitly mentions bootstrapping, we are interested in merging our work into scipy. We use the BSD 3-clause license, so the license should not be an issue. Is there already work ongoing on bootstrap methods? With whom should we collaborate? > > Some context about us: > > Daniel is a data analyst working in the financial industry. I am a particle physicist and the author of Boost Histogram (C++ and Python, https://github.com/boostorg/histogram, https://github.com/scikit-hep/boost-histogram) and the maintainer of iminuit, the general purpose minimiser and error computer (C++ and Python, https://github.com/scikit-hep/iminuit). > > Best regards, > Hans > From warren.weckesser at gmail.com Thu Jun 18 10:15:19 2020 From: warren.weckesser at gmail.com (Warren Weckesser) Date: Thu, 18 Jun 2020 10:15:19 -0400 Subject: [SciPy-Dev] Adding non-parametric methods to scipy.stats In-Reply-To: <91A9C8F6-63B5-408C-9A1E-29EF4997FC37@gmail.com> References: <6a5dee0d-3d55-409d-6bf8-b86e3f465275@tik.ee.ethz.ch> <9ed88efe-5504-3d60-ab73-3ffc7cce1edf@tik.ee.ethz.ch> <91A9C8F6-63B5-408C-9A1E-29EF4997FC37@gmail.com> Message-ID: On 6/18/20, Hans Dembinski wrote: > Dear all, > > since there was no reply to my first attempt, I am repeat my message. Daniel > Saxton and I are working on a Python library called `resample`, which > implements the bootstrap and jackknife. We would like to work toward merging > bootstrap functions into Scipy and it would be great to get some feedback > about this. We would be pleased to collaborate with people who are already > working on this in Scipy. We are both pretty decent programmers, > knowledgable about statistics in general and the bootstrap in particular. > Thanks, Hans. We would be very interested in adding bootstrap methods to SciPy! I might not get to it for a few days, but I'll take a look at your library and see if it makes sense to incorporate it into SciPy. If anyone other SciPy devs can get to it sooner, please take a look! Warren > Best regards, > Hans > >> On 12. Jun 2020, at 16:16, Hans Dembinski >> wrote: >> >> I just joined the list, so I apologise for any etiquette-breaking in >> advance, but would like to inject here that I am collaborating with >> Daniel Saxton on `resample`, a library that implements the jackknife and >> bootstrap, which can be used - among many other things - to compute >> confidence intervals for quantiles/percentiles. >> >> https://github.com/dsaxton/resample >> >> We are currently working on interface and documentation and adding more >> unit tests and benchmarks, but `resample` is already the most complete >> library that implements resampling methods in Python. >> >> Seeing that https://github.com/scipy/scipy/issues/10577 explicitly >> mentions bootstrapping, we are interested in merging our work into scipy. >> We use the BSD 3-clause license, so the license should not be an issue. Is >> there already work ongoing on bootstrap methods? With whom should we >> collaborate? >> >> Some context about us: >> >> Daniel is a data analyst working in the financial industry. I am a >> particle physicist and the author of Boost Histogram (C++ and Python, >> https://github.com/boostorg/histogram, >> https://github.com/scikit-hep/boost-histogram) and the maintainer of >> iminuit, the general purpose minimiser and error computer (C++ and Python, >> https://github.com/scikit-hep/iminuit). >> >> Best regards, >> Hans >> > > _______________________________________________ > SciPy-Dev mailing list > SciPy-Dev at python.org > https://mail.python.org/mailman/listinfo/scipy-dev > From hans.dembinski at gmail.com Thu Jun 18 11:53:03 2020 From: hans.dembinski at gmail.com (Hans Dembinski) Date: Thu, 18 Jun 2020 17:53:03 +0200 Subject: [SciPy-Dev] Adding non-parametric methods to scipy.stats In-Reply-To: References: <6a5dee0d-3d55-409d-6bf8-b86e3f465275@tik.ee.ethz.ch> <9ed88efe-5504-3d60-ab73-3ffc7cce1edf@tik.ee.ethz.ch> <91A9C8F6-63B5-408C-9A1E-29EF4997FC37@gmail.com> Message-ID: <8765F3BD-7FEF-4457-9F30-010AA69AA493@gmail.com> Dear Warren, (Daniel in CC) > On 18. Jun 2020, at 16:15, Warren Weckesser wrote: > > On 6/18/20, Hans Dembinski wrote: >> Dear all, >> >> since there was no reply to my first attempt, I am repeat my message. Daniel >> Saxton and I are working on a Python library called `resample`, which >> implements the bootstrap and jackknife. We would like to work toward merging >> bootstrap functions into Scipy and it would be great to get some feedback >> about this. We would be pleased to collaborate with people who are already >> working on this in Scipy. We are both pretty decent programmers, >> knowledgable about statistics in general and the bootstrap in particular. > > Thanks, Hans. We would be very interested in adding bootstrap methods to SciPy! > > I might not get to it for a few days, but I'll take a look at your > library and see if it makes sense to incorporate it into SciPy. If > anyone other SciPy devs can get to it sooner, please take a look! that is excellent, thanks! The basic functionality is all there. We are currently working on refining the interface, the docs need more work, and we want to add more unit tests. Currently, the project is not at a quality-level fit for SciPy, but I am sure we can get there. Best regards, Hans From mhaberla at calpoly.edu Thu Jun 18 12:46:28 2020 From: mhaberla at calpoly.edu (Matt Haberland) Date: Thu, 18 Jun 2020 09:46:28 -0700 Subject: [SciPy-Dev] Translating Documentation into Spanish In-Reply-To: References: Message-ID: These are just my thoughts; someone who has been around longer will likely know more, but it might take longer to get that response. It looks like Sphinx (our documentation system) supports internationalization and there are services (e.g. Transifex ) that make crowdsourcing easier. The difficult part is probably building a team that will review one another's work and maintain the translations as the English documentation changes. I imagine that users of the documentation might also want to file bug reports in Spanish, but that might be more difficult to support. > Is there a project already that is translating the documentation into Spanish so that I can join? I don't know of existing projects, but others might have a better idea of the history. > What kind of qualifications do I need? (I have already translated some technical books for my own learning and entertainment.) Probably the ones you have, then. Anyone can contribute to the English documentation, and changes are reviewed for quality by maintainers before inclusion in SciPy. I suppose that the same would be true of Spanish translations, except there would need to be a team of translation maintainers. > How do I start? Do I just start translating? If so, when I have something finished who do I send it to? Unless there is an existing project, someone will need to research how to manage this sort of project before actual translations could be used. I'd suggest contributing to SciPy's English documentation first, and meanwhile, maybe contribute to the Sphinx documentation translation to see how that process works. Then I would suggest writing up your thoughts on how a SciPy documentation translation project might be organized and how it could work technically in order to produce and maintain high-quality translations. On Wed, Jun 17, 2020 at 3:56 PM Luis Lozano wrote: > Hello, My name is Luis E. Lozano Marrujo. > > > > I am a native Spanish speaker who is interested in helping to translate > some (most of that which I can translate) of the documentation into > Spanish. And I have some doubts: > > > > Is there a project already that is translating the documentation into > Spanish so that I can join? > > What kind of qualifications do I need? (I have already translated some > technical books for my own learning and entertainment.) > > How do I start? Do I just start translating? If so, when I have something > finished who do I send it to? > > > > > > Thanks for the attention and help. Also much thanks to all the people who > develop this stuff! > > _______________________________________________ > SciPy-Dev mailing list > SciPy-Dev at python.org > https://mail.python.org/mailman/listinfo/scipy-dev > -- Matt Haberland Assistant Professor BioResource and Agricultural Engineering 08A-3K, Cal Poly -------------- next part -------------- An HTML attachment was scrubbed... URL: From warren.weckesser at gmail.com Fri Jun 19 11:09:39 2020 From: warren.weckesser at gmail.com (Warren Weckesser) Date: Fri, 19 Jun 2020 11:09:39 -0400 Subject: [SciPy-Dev] Merging firwin and firwin2 in scipy.signal In-Reply-To: References: Message-ID: On 6/16/20, Shashaank N wrote: > Hi, > > I was looking at the detailed SciPy roadmap, and one of the improvements in > scipy.signal is "merging firwin and firwin2 so firwin2 can be removed." If > there is still interest in this, I can work on it. Yes, there is still interest! Before working on any code, we need to agree on the API changes that will be needed to make this happen. The updated API needs to provide (roughly) equivalent functionality as that currently provided by firwin and firwin2. We also need to maintain backwards compatibility. I haven't looked at these in a long time--maybe the API changes will be simple, and we can start looking at implementations pretty quickly. If anyone already has ideas on this, let us know. Warren > > > Thanks, > Shashaank > From ralf.gommers at gmail.com Fri Jun 19 12:45:44 2020 From: ralf.gommers at gmail.com (Ralf Gommers) Date: Fri, 19 Jun 2020 18:45:44 +0200 Subject: [SciPy-Dev] Translating Documentation into Spanish In-Reply-To: References: Message-ID: Hi Luis, welcome On Thu, Jun 18, 2020 at 6:47 PM Matt Haberland wrote: > These are just my thoughts; someone who has been around longer will likely > know more, but it might take longer to get that response. > > It looks like Sphinx (our documentation system) supports > internationalization > and > there are services (e.g. Transifex ) that > make crowdsourcing easier. The difficult part is probably building a team > that will review one another's work and maintain the translations as the > English documentation changes. I imagine that users of the documentation > might also want to file bug reports in Spanish, but that might be more > difficult to support. > > > Is there a project already that is translating the documentation into > Spanish so that I can join? > I don't know of existing projects, but others might have a better idea of > the history. > > > What kind of qualifications do I need? (I have already translated some > technical books for my own learning and entertainment.) > Probably the ones you have, then. Anyone can contribute to the English > documentation, and changes are reviewed for quality by maintainers before > inclusion in SciPy. I suppose that the same would be true of Spanish > translations, except there would need to be a team of translation > maintainers. > > > How do I start? Do I just start translating? If so, when I have > something finished who do I send it to? > Unless there is an existing project, someone will need to research how to > manage this sort of project before actual translations could be used. > I'd suggest contributing to SciPy's English documentation > > first, and meanwhile, maybe contribute to the Sphinx documentation > translation to see how > that process works. Then I would suggest writing up your thoughts on how a > SciPy documentation translation project might be organized and how it could > work technically in order to produce and maintain high-quality translations. > I think translating the SciPy docs isn't the best place to start, because it's an enormous task. Here is what I wrote for the NumPy website, which I think is a good place to start and needs both working out a few kinks in the workflow and doing the translation in some of the most-used languages (including Spanish): > On Wed, Jun 17, 2020 at 3:56 PM Luis Lozano wrote: > >> Hello, My name is Luis E. Lozano Marrujo. >> >> >> >> I am a native Spanish speaker who is interested in helping to translate >> some (most of that which I can translate) of the documentation into >> Spanish. And I have some doubts: >> >> >> >> Is there a project already that is translating the documentation into >> Spanish so that I can join? >> >> What kind of qualifications do I need? (I have already translated some >> technical books for my own learning and entertainment.) >> >> How do I start? Do I just start translating? If so, when I have something >> finished who do I send it to? >> >> >> >> >> >> Thanks for the attention and help. Also much thanks to all the people who >> develop this stuff! >> >> _______________________________________________ >> SciPy-Dev mailing list >> SciPy-Dev at python.org >> https://mail.python.org/mailman/listinfo/scipy-dev >> > > > -- > Matt Haberland > Assistant Professor > BioResource and Agricultural Engineering > 08A-3K, Cal Poly > _______________________________________________ > SciPy-Dev mailing list > SciPy-Dev at python.org > https://mail.python.org/mailman/listinfo/scipy-dev > -------------- next part -------------- An HTML attachment was scrubbed... URL: From ralf.gommers at gmail.com Fri Jun 19 12:47:19 2020 From: ralf.gommers at gmail.com (Ralf Gommers) Date: Fri, 19 Jun 2020 18:47:19 +0200 Subject: [SciPy-Dev] Translating Documentation into Spanish In-Reply-To: References: Message-ID: On Fri, Jun 19, 2020 at 6:45 PM Ralf Gommers wrote: > Hi Luis, welcome > > > On Thu, Jun 18, 2020 at 6:47 PM Matt Haberland > wrote: > >> These are just my thoughts; someone who has been around longer will >> likely know more, but it might take longer to get that response. >> >> It looks like Sphinx (our documentation system) supports >> internationalization >> and >> there are services (e.g. Transifex ) that >> make crowdsourcing easier. The difficult part is probably building a team >> that will review one another's work and maintain the translations as the >> English documentation changes. I imagine that users of the documentation >> might also want to file bug reports in Spanish, but that might be more >> difficult to support. >> >> > Is there a project already that is translating the documentation into >> Spanish so that I can join? >> I don't know of existing projects, but others might have a better idea of >> the history. >> >> > What kind of qualifications do I need? (I have already translated some >> technical books for my own learning and entertainment.) >> Probably the ones you have, then. Anyone can contribute to the English >> documentation, and changes are reviewed for quality by maintainers before >> inclusion in SciPy. I suppose that the same would be true of Spanish >> translations, except there would need to be a team of translation >> maintainers. >> >> > How do I start? Do I just start translating? If so, when I have >> something finished who do I send it to? >> Unless there is an existing project, someone will need to research how to >> manage this sort of project before actual translations could be used. >> I'd suggest contributing to SciPy's English documentation >> >> first, and meanwhile, maybe contribute to the Sphinx documentation >> translation to see >> how that process works. Then I would suggest writing up your thoughts on >> how a SciPy documentation translation project might be organized and how it >> could work technically in order to produce and maintain high-quality >> translations. >> > > I think translating the SciPy docs isn't the best place to start, because > it's an enormous task. Here is what I wrote for the NumPy website, which I > think is a good place to start and needs both working out a few kinks in > the workflow and doing the translation in some of the most-used languages > (including Spanish): > Sorry, sent too early. https://numpy.org/neps/nep-0028-website-redesign.html#translation-multilingual-i18n https://github.com/numpy/numpy.org/issues/55 Now that that website is launched, translations can be tackled. For SciPy, we should do something similar after that (assuming for NumPy it's successful) - start with the most high-level content. Cheers, Ralf > >> On Wed, Jun 17, 2020 at 3:56 PM Luis Lozano wrote: >> >>> Hello, My name is Luis E. Lozano Marrujo. >>> >>> >>> >>> I am a native Spanish speaker who is interested in helping to translate >>> some (most of that which I can translate) of the documentation into >>> Spanish. And I have some doubts: >>> >>> >>> >>> Is there a project already that is translating the documentation into >>> Spanish so that I can join? >>> >>> What kind of qualifications do I need? (I have already translated some >>> technical books for my own learning and entertainment.) >>> >>> How do I start? Do I just start translating? If so, when I have >>> something finished who do I send it to? >>> >>> >>> >>> >>> >>> Thanks for the attention and help. Also much thanks to all the people >>> who develop this stuff! >>> >>> _______________________________________________ >>> SciPy-Dev mailing list >>> SciPy-Dev at python.org >>> https://mail.python.org/mailman/listinfo/scipy-dev >>> >> >> >> -- >> Matt Haberland >> Assistant Professor >> BioResource and Agricultural Engineering >> 08A-3K, Cal Poly >> _______________________________________________ >> SciPy-Dev mailing list >> SciPy-Dev at python.org >> https://mail.python.org/mailman/listinfo/scipy-dev >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: From juanlu001 at gmail.com Fri Jun 19 13:24:55 2020 From: juanlu001 at gmail.com (Juan Luis Cano) Date: Fri, 19 Jun 2020 19:24:55 +0200 Subject: [SciPy-Dev] Translating Documentation into Spanish In-Reply-To: References: Message-ID: You might want to checkout what CPython is doing for their docs, using gettext and plain pull requests (i.e. no Transifex): https://github.com/python/python-docs-es On 6/19/20, Ralf Gommers wrote: > On Fri, Jun 19, 2020 at 6:45 PM Ralf Gommers > wrote: > >> Hi Luis, welcome >> >> >> On Thu, Jun 18, 2020 at 6:47 PM Matt Haberland >> wrote: >> >>> These are just my thoughts; someone who has been around longer will >>> likely know more, but it might take longer to get that response. >>> >>> It looks like Sphinx (our documentation system) supports >>> internationalization >>> >>> and >>> there are services (e.g. Transifex ) that >>> make crowdsourcing easier. The difficult part is probably building a >>> team >>> that will review one another's work and maintain the translations as the >>> English documentation changes. I imagine that users of the documentation >>> might also want to file bug reports in Spanish, but that might be more >>> difficult to support. >>> >>> > Is there a project already that is translating the documentation into >>> Spanish so that I can join? >>> I don't know of existing projects, but others might have a better idea >>> of >>> the history. >>> >>> > What kind of qualifications do I need? (I have already translated some >>> technical books for my own learning and entertainment.) >>> Probably the ones you have, then. Anyone can contribute to the English >>> documentation, and changes are reviewed for quality by maintainers >>> before >>> inclusion in SciPy. I suppose that the same would be true of Spanish >>> translations, except there would need to be a team of translation >>> maintainers. >>> >>> > How do I start? Do I just start translating? If so, when I have >>> something finished who do I send it to? >>> Unless there is an existing project, someone will need to research how >>> to >>> manage this sort of project before actual translations could be used. >>> I'd suggest contributing to SciPy's English documentation >>> >>> first, and meanwhile, maybe contribute to the Sphinx documentation >>> translation to see >>> how that process works. Then I would suggest writing up your thoughts on >>> how a SciPy documentation translation project might be organized and how >>> it >>> could work technically in order to produce and maintain high-quality >>> translations. >>> >> >> I think translating the SciPy docs isn't the best place to start, because >> it's an enormous task. Here is what I wrote for the NumPy website, which >> I >> think is a good place to start and needs both working out a few kinks in >> the workflow and doing the translation in some of the most-used languages >> (including Spanish): >> > > Sorry, sent too early. > > https://numpy.org/neps/nep-0028-website-redesign.html#translation-multilingual-i18n > https://github.com/numpy/numpy.org/issues/55 > > Now that that website is launched, translations can be tackled. > > For SciPy, we should do something similar after that (assuming for NumPy > it's successful) - start with the most high-level content. > > Cheers, > Ralf > > > >> >>> On Wed, Jun 17, 2020 at 3:56 PM Luis Lozano >>> wrote: >>> >>>> Hello, My name is Luis E. Lozano Marrujo. >>>> >>>> >>>> >>>> I am a native Spanish speaker who is interested in helping to translate >>>> some (most of that which I can translate) of the documentation into >>>> Spanish. And I have some doubts: >>>> >>>> >>>> >>>> Is there a project already that is translating the documentation into >>>> Spanish so that I can join? >>>> >>>> What kind of qualifications do I need? (I have already translated some >>>> technical books for my own learning and entertainment.) >>>> >>>> How do I start? Do I just start translating? If so, when I have >>>> something finished who do I send it to? >>>> >>>> >>>> >>>> >>>> >>>> Thanks for the attention and help. Also much thanks to all the people >>>> who develop this stuff! >>>> >>>> _______________________________________________ >>>> SciPy-Dev mailing list >>>> SciPy-Dev at python.org >>>> https://mail.python.org/mailman/listinfo/scipy-dev >>>> >>> >>> >>> -- >>> Matt Haberland >>> Assistant Professor >>> BioResource and Agricultural Engineering >>> 08A-3K, Cal Poly >>> _______________________________________________ >>> SciPy-Dev mailing list >>> SciPy-Dev at python.org >>> https://mail.python.org/mailman/listinfo/scipy-dev >>> >> > -- Juan Luis Cano From ralf.gommers at gmail.com Fri Jun 19 13:43:57 2020 From: ralf.gommers at gmail.com (Ralf Gommers) Date: Fri, 19 Jun 2020 19:43:57 +0200 Subject: [SciPy-Dev] Translating Documentation into Spanish In-Reply-To: References: Message-ID: On Fri, Jun 19, 2020 at 7:25 PM Juan Luis Cano wrote: > You might want to checkout what CPython is doing for their docs, using > gettext and plain pull requests (i.e. no Transifex): > Spyder has just moved from such an approach to Crowdin, and are way happier with the latter. I think PRs for translations is a bad idea in 2020, both because translators should have a UI that works for them rather than a dev-centric workflow, and because it's less effort with integration for the maintainers. We have found the same with doc/tutorial writing - Sphinx + PRs is terrible, tech writers much prefer something like a notebook. Thanks for the suggestion though Juan Luis. Cheers, Ralf > https://github.com/python/python-docs-es > > On 6/19/20, Ralf Gommers wrote: > > On Fri, Jun 19, 2020 at 6:45 PM Ralf Gommers > > wrote: > > > >> Hi Luis, welcome > >> > >> > >> On Thu, Jun 18, 2020 at 6:47 PM Matt Haberland > >> wrote: > >> > >>> These are just my thoughts; someone who has been around longer will > >>> likely know more, but it might take longer to get that response. > >>> > >>> It looks like Sphinx (our documentation system) supports > >>> internationalization > >>> < > https://www.sphinx-doc.org/en/master/usage/advanced/intl.html#using-transifex-service-for-team-translation > > > >>> and > >>> there are services (e.g. Transifex ) that > >>> make crowdsourcing easier. The difficult part is probably building a > >>> team > >>> that will review one another's work and maintain the translations as > the > >>> English documentation changes. I imagine that users of the > documentation > >>> might also want to file bug reports in Spanish, but that might be more > >>> difficult to support. > >>> > >>> > Is there a project already that is translating the documentation into > >>> Spanish so that I can join? > >>> I don't know of existing projects, but others might have a better idea > >>> of > >>> the history. > >>> > >>> > What kind of qualifications do I need? (I have already translated > some > >>> technical books for my own learning and entertainment.) > >>> Probably the ones you have, then. Anyone can contribute to the English > >>> documentation, and changes are reviewed for quality by maintainers > >>> before > >>> inclusion in SciPy. I suppose that the same would be true of Spanish > >>> translations, except there would need to be a team of translation > >>> maintainers. > >>> > >>> > How do I start? Do I just start translating? If so, when I have > >>> something finished who do I send it to? > >>> Unless there is an existing project, someone will need to research how > >>> to > >>> manage this sort of project before actual translations could be used. > >>> I'd suggest contributing to SciPy's English documentation > >>> < > https://github.com/scipy/scipy/issues?q=is%3Aopen+is%3Aissue+label%3ADocumentation > > > >>> first, and meanwhile, maybe contribute to the Sphinx documentation > >>> translation to see > >>> how that process works. Then I would suggest writing up your thoughts > on > >>> how a SciPy documentation translation project might be organized and > how > >>> it > >>> could work technically in order to produce and maintain high-quality > >>> translations. > >>> > >> > >> I think translating the SciPy docs isn't the best place to start, > because > >> it's an enormous task. Here is what I wrote for the NumPy website, which > >> I > >> think is a good place to start and needs both working out a few kinks in > >> the workflow and doing the translation in some of the most-used > languages > >> (including Spanish): > >> > > > > Sorry, sent too early. > > > > > https://numpy.org/neps/nep-0028-website-redesign.html#translation-multilingual-i18n > > https://github.com/numpy/numpy.org/issues/55 > > > > Now that that website is launched, translations can be tackled. > > > > For SciPy, we should do something similar after that (assuming for NumPy > > it's successful) - start with the most high-level content. > > > > Cheers, > > Ralf > > > > > > > >> > >>> On Wed, Jun 17, 2020 at 3:56 PM Luis Lozano > >>> wrote: > >>> > >>>> Hello, My name is Luis E. Lozano Marrujo. > >>>> > >>>> > >>>> > >>>> I am a native Spanish speaker who is interested in helping to > translate > >>>> some (most of that which I can translate) of the documentation into > >>>> Spanish. And I have some doubts: > >>>> > >>>> > >>>> > >>>> Is there a project already that is translating the documentation into > >>>> Spanish so that I can join? > >>>> > >>>> What kind of qualifications do I need? (I have already translated some > >>>> technical books for my own learning and entertainment.) > >>>> > >>>> How do I start? Do I just start translating? If so, when I have > >>>> something finished who do I send it to? > >>>> > >>>> > >>>> > >>>> > >>>> > >>>> Thanks for the attention and help. Also much thanks to all the people > >>>> who develop this stuff! > >>>> > >>>> _______________________________________________ > >>>> SciPy-Dev mailing list > >>>> SciPy-Dev at python.org > >>>> https://mail.python.org/mailman/listinfo/scipy-dev > >>>> > >>> > >>> > >>> -- > >>> Matt Haberland > >>> Assistant Professor > >>> BioResource and Agricultural Engineering > >>> 08A-3K, Cal Poly > >>> _______________________________________________ > >>> SciPy-Dev mailing list > >>> SciPy-Dev at python.org > >>> https://mail.python.org/mailman/listinfo/scipy-dev > >>> > >> > > > > > -- > Juan Luis Cano > _______________________________________________ > SciPy-Dev mailing list > SciPy-Dev at python.org > https://mail.python.org/mailman/listinfo/scipy-dev > -------------- next part -------------- An HTML attachment was scrubbed... URL: From terry.y.davis+scipy at gmail.com Fri Jun 19 14:36:39 2020 From: terry.y.davis+scipy at gmail.com (Terry) Date: Fri, 19 Jun 2020 11:36:39 -0700 Subject: [SciPy-Dev] Proposal: Deprecate confusing flag params in ndimage.distance_transform_* In-Reply-To: References: Message-ID: Hi Ralf, Did you see my last message? I just realized that the entire message body was under the gmail's fold, so it may have appeared blank to you. (...how do I get rid of the fold?) -Terry On Tue, Jun 9, 2020 at 9:23 AM Terry wrote: > > On Mon, Jun 8, 2020 at 11:14 AM Ralf Gommers > wrote: > >> >> >> On Sun, Jun 7, 2020 at 6:47 AM Terry >> wrote: >> >>> Hi Ralf, >>> >>> Thanks for the feedback. >>> >>> To be clear, my proposal is to drop the return_* args entirely. >>> >> >> I misread that, I thought you wanted to drop the other two args instead. >> Either way, I don't think that changes my feedback. Overloading two >> keywords more isn't a real improvement. >> >> If that?s not desirable, we could also decouple return_* from *, so the >>> arg names would be more descriptive, but perhaps this would not be useful. >>> >>> If you?d rather proceed with the change you described, my only questions >>> are whether the fix warrants a deprecation cycle, or does it seem low risk >>> enough to just include in the release notes, and is a test necessary? >>> >> >> It doesn't need a deprecation, that's just a bug fix so the change can be >> made straight away. >> > > Like this? > distances\return_distances | False | True > ---------------------------+------------------+----------------- > None | nothing | return distances > ndarray | nothing | populate ndarray > > indicies\return_indicies | False | True > ---------------------------+------------------+----------------- > None | nothing | return distances > ndarray | *nothing* | populate ndarray > > > To guard against misuse, you could add a check that if a return_* is True >> but the corresponding * is an ndarray, raise an error (because the two >> keywords are in conflict). >> > > This seems like it would warrant deprecation, since the only way to do an > in-place `distance` calculation is changing. > distances\return_distances | False | True > ---------------------------+------------------+----------------- > None | nothing | return distances > ndarray |*populate ndarray*| *error* > > indicies\return_indicies | False | True > ---------------------------+------------------+----------------- > None | nothing | return distances > ndarray | populate ndarray | *error* > >> >> Cheers, >> Ralf >> >> > If we're still considering an API change, I'd rather change return_* to > calculate_* to get the names match the behavior instead of visa-versa. > > distances\*calculate_distances* | False | True > -----------------------------+----------------+----------------- > None | nothing | return distances > ndarray | nothing | populate ndarray > > indicies\*calculate_indicies* | False | True > ----------------------------+-----------------+----------------- > None | nothing | return distances > ndarray | *nothing* | populate ndarray > > Cheers, > Terry > > > >>> >>> Either way, I?d be happy to add it to the PR I?ve got open. >>> >>> Cheers, >>> Terry >>> >>> On Sat, Jun 6, 2020 at 15:19 Ralf Gommers >>> wrote: >>> >>>> >>>> >>>> On Wed, Jun 3, 2020 at 8:34 AM Terry >>>> wrote: >>>> >>>>> Hi all, >>>>> >>>>> I would like to remove the parameters `return_distances` and >>>>> `return_indicies`, because their names are misleading and behaviors are >>>>> different. >>>>> >>>>> While working on this PR: https://github.com/scipy/scipy/pull/12144 >>>>> I realized that the distance_transform_* functions had confusing and >>>>> complex interactions between the `return_distances`/`distances` and >>>>> `return_indicies`/`indicies` pairs (the feature transform is always >>>>> calculated because it's needed to calculate the distance transform). >>>>> >>>> >>>> I agree that that's pretty weird. The `return_something` keyword >>>> pattern is present in a number of places in SciPy. It's not great, but we >>>> live with it. The combo keywords in these functions where you can provide >>>> an in-place argument as well is not present anywhere else as far as I know. >>>> >>>> >>>>> Here's how the the behavior of each pair differs: >>>>> distances\return_distances | False | True >>>>> ----------------------------------------------+----------------- >>>>> None | nothing | return distances >>>>> ndarray | nothing | populate ndarray >>>>> >>>>> indicies\return_indicies | False | True >>>>> ----------------------------------------------+----------------- >>>>> None | nothing | return distances >>>>> ndarray | populate ndarray | populate ndarray >>>>> >>>> >>>> The indices (False, ndarray) case seems wrong, that should also do >>>> nothing. For the rest, this is weird but at least consistent. >>>> >>>> >>>>> Here's the proposed API: >>>>> distances: >>>>> ndarray - put distance transform here, don't return it >>>>> Truthy - Return the distance transform >>>>> Falsey - Don't return the distance transform >>>>> >>>>> indicies: >>>>> ndarray - put feature transform here, don't return it >>>>> Truthy - Return the feature transform >>>>> Falsey - Don't return the feature transform >>>>> >>>> >>>> I don't think that's much better to be honest, that makes the >>>> `return_*` keywords even more weird. I'd prefer just fixing the one >>>> inconsistency I pointed out above and leaving it at that. >>>> >>>> Thanks for working on this Terry. >>>> >>>> Cheers, >>>> Ralf >>>> >>>> >>>> >>>>> This should simplify the documentation and code, and make it easier to >>>>> reason about these behaviors. >>>>> If this sounds reasonable, I'd also be happy to make similar changes >>>>> to any other parts of scipy that have multiple optional returns/outputs. >>>>> >>>>> Regards, >>>>> Terry >>>>> _______________________________________________ >>>>> SciPy-Dev mailing list >>>>> SciPy-Dev at python.org >>>>> https://mail.python.org/mailman/listinfo/scipy-dev >>>>> >>>> _______________________________________________ >>>> SciPy-Dev mailing list >>>> SciPy-Dev at python.org >>>> https://mail.python.org/mailman/listinfo/scipy-dev >>>> >>> _______________________________________________ >>> SciPy-Dev mailing list >>> SciPy-Dev at python.org >>> https://mail.python.org/mailman/listinfo/scipy-dev >>> >> _______________________________________________ >> SciPy-Dev mailing list >> SciPy-Dev at python.org >> https://mail.python.org/mailman/listinfo/scipy-dev >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: From charlesr.harris at gmail.com Sat Jun 20 16:58:44 2020 From: charlesr.harris at gmail.com (Charles R Harris) Date: Sat, 20 Jun 2020 14:58:44 -0600 Subject: [SciPy-Dev] NumPy 1.19.0 released Message-ID: Hi All, On behalf of the NumPy team I am pleased to announce that NumPy 1.19.0 has been released. This NumPy release supports Python 3.6-3.8 and is marked by the removal of much technical debt: support for Python 2 has been removed, many deprecations have been expired, and documentation has been improved. The polishing of the random module continues apace with bug fixes and better usability from Cython. Perhaps the most interesting thing for users will be the availability of wheels for aarch64 and PyPY. Downstream developers should use Cython >= 0.29.16 for Python 3.8 support and OpenBLAS >= 3.7 to avoid wrong results on the Skylake architecture. The NumPy Wheels for this release can be downloaded from PyPI , source archives, release notes, and wheel hashes are available from Github . Linux users will need pip >= 0.19.3 in order to install manylinux2010 and manylinux2014 wheels. *Contributors* A total of 126 people contributed to this release. People with a "+" by their names contributed a patch for the first time. - Alex Henrie - Alexandre de Siqueira + - Andras Deak - Andrea Sangalli + - Andreas Kl?ckner + - Andrei Shirobokov + - Anirudh Subramanian + - Anne Bonner - Anton Ritter-Gogerly + - Benjamin Trendelkamp-Schroer + - Bharat Raghunathan - Brandt Bucher + - Brian Wignall - Bui Duc Minh + - Changqing Li + - Charles Harris - Chris Barker - Chris Holland + - Christian Kastner + - Chunlin + - Chunlin Fang + - Damien Caliste + - Dan Allan - Daniel Hrisca - Daniel Povey + - Dustan Levenstein + - Emmanuelle Gouillart + - Eric Larson - Eric M. Bray - Eric Mariasis + - Eric Wieser - Erik Welch + - Fabio Zeiser + - Gabriel Gerlero + - Ganesh Kathiresan + - Gengxin Xie + - Guilherme Leobas - Guillaume Peillex + - Hameer Abbasi - Hao Jin + - Harshal Prakash Patankar + - Heshy Roskes + - Himanshu Garg + - Huon Wilson + - John Han + - John Kirkham - Jon Dufresne - Jon Morris + - Josh Wilson - Justus Magin - Kai Striega - Kerem Halla? + - Kevin Sheppard - Kirill Zinovjev + - Marcin Podhajski + - Mark Harfouche - Marten van Kerkwijk - Martin Michlmayr + - Masashi Kishimoto + - Mathieu Lamarre - Matt Hancock + - MatteoRaso + - Matthew Harrigan - Matthias Bussonnier - Matti Picus - Max Balandat + - Maximilian Konrad + - Maxwell Aladago - Maxwell Bileschi + - Melissa Weber Mendon?a + - Michael Felt - Michael Hirsch + - Mike Taves - Nico Schl?mer - Pan Jan + - Paul Rougieux + - Pauli Virtanen - Peter Andreas Entschev - Petre-Flaviu Gostin + - Pierre de Buyl - Piotr Gai?ski + - Przemyslaw Bartosik + - Raghuveer Devulapalli - Rakesh Vasudevan + - Ralf Gommers - RenaRuirui + - Robert Kern - Roman Yurchak - Ross Barnowski + - Ryan + - Ryan Soklaski - Sanjeev Kumar + - SanthoshBala18 + - Sayed Adel + - Sebastian Berg - Seth Troisi - Sha Liu + - Siba Smarak Panigrahi + - Simon Gasse + - Stephan Hoyer - Steve Dower + - Thomas A Caswell - Till Hoffmann + - Tim Hoffmann - Tina Oberoi + - Tirth Patel - Tyler Reddy - Warren Weckesser - Wojciech Rzadkowski + - Xavier Thomas + - Yilin LI + - Zac Hatfield-Dodds + - Z? Vin?cius + - @Adam + - @Anthony + - @Jim + - @bartosz-grabowski + - @dojafrat + - @gamboon + - @jfbu + - @keremh + - @mayeut + - @ndunnewind + - @nglinh + - @shreepads + - @sslivkoff + Cheers, Charles Harris -------------- next part -------------- An HTML attachment was scrubbed... URL: From tyler.je.reddy at gmail.com Sun Jun 21 15:21:09 2020 From: tyler.je.reddy at gmail.com (Tyler Reddy) Date: Sun, 21 Jun 2020 13:21:09 -0600 Subject: [SciPy-Dev] ANN: SciPy 1.5.0 Message-ID: Hi all, On behalf of the SciPy development team I'm pleased to announce the release of SciPy 1.5.0. Sources and binary wheels can be found at: https://pypi.org/project/scipy/ and at: https://github.com/scipy/scipy/releases/tag/v1.5.0 One of a few ways to install this release with pip: pip install scipy==1.5.0 ========================== SciPy 1.5.0 Release Notes ========================== SciPy 1.5.0 is the culmination of 6 months of hard work. It contains many new features, numerous bug-fixes, improved test coverage and better documentation. There have been a number of deprecations and API changes in this release, which are documented below. All users are encouraged to upgrade to this release, as there are a large number of bug-fixes and optimizations. Before upgrading, we recommend that users check that their own code does not use deprecated SciPy functionality (to do so, run your code with ``python -Wd`` and check for ``DeprecationWarning`` s). Our development attention will now shift to bug-fix releases on the 1.5.x branch, and on adding new features on the master branch. This release requires Python 3.6+ and NumPy 1.14.5 or greater. For running on PyPy, PyPy3 6.0+ and NumPy 1.15.0 are required. Highlights of this release ---------------------------------- - wrappers for more than a dozen new ``LAPACK`` routines are now available in `scipy.linalg.lapack` - Improved support for leveraging 64-bit integer size from linear algebra backends - addition of the probability distribution for two-sided one-sample Kolmogorov-Smirnov tests New features ============ `scipy.cluster` improvements --------------------------------------- Initialization of `scipy.cluster.vq.kmeans2` using ``minit="++"`` had a quadratic complexity in the number of samples. It has been improved, resulting in a much faster initialization with quasi-linear complexity. `scipy.cluster.hierarchy.dendrogram` now respects the ``matplotlib`` color palette `scipy.fft` improvements ---------------------------------- A new keyword-only argument ``plan`` is added to all FFT functions in this module. It is reserved for passing in a precomputed plan from libraries providing a FFT backend (such as ``PyFFTW`` and ``mkl-fft``), and it is currently not used in SciPy. `scipy.io` improvements --------------------------------- `scipy.io.wavfile` error messages are more explicit about what's wrong, and extraneous bytes at the ends of files are ignored instead of raising an error when the data has successfully been read. `scipy.io.loadmat` gained a ``simplify_cells`` parameter, which if set to ``True`` simplifies the structure of the return value if the ``.mat`` file contains cell arrays. ``pathlib.Path`` objects are now supported in `scipy.io` Matrix Market I/O functions `scipy.linalg` improvements -------------------------------------- `scipy.linalg.eigh` has been improved. Now various ``LAPACK`` drivers can be selected at will and also subsets of eigenvalues can be requested via ``subset_by_value`` keyword. Another keyword ``subset_by_index`` is introduced. Keywords ``turbo`` and ``eigvals`` are deprecated. Similarly, standard and generalized Hermitian eigenvalue ``LAPACK`` routines ``?evx`` are added and existing ones now have full ``_lwork`` counterparts. Wrappers for the following ``LAPACK`` routines have been added to `scipy.linalg.lapack`: - ``?getc2``: computes the LU factorization of a general matrix with complete pivoting - ``?gesc2``: solves a linear system given an LU factorization from ``?getc2`` - ``?gejsv``: computes the singular value decomposition of a general matrix with higher accuracy calculation of tiny singular values and their corresponding singular vectors - ``?geqrfp``: computes the QR factorization of a general matrix with non-negative elements on the diagonal of R - ``?gtsvx``: solves a linear system with general tridiagonal matrix - ``?gttrf``: computes the LU factorization of a tridiagonal matrix - ``?gttrs``: solves a linear system given an LU factorization from ``?gttrf`` - ``?ptsvx``: solves a linear system with symmetric positive definite tridiagonal matrix - ``?pttrf``: computes the LU factorization of a symmetric positive definite tridiagonal matrix - ``?pttrs``: solves a linear system given an LU factorization from ``?pttrf`` - ``?pteqr``: computes the eigenvectors and eigenvalues of a positive definite tridiagonal matrix - ``?tbtrs``: solves a linear system with a triangular banded matrix - ``?csd``: computes the Cosine Sine decomposition of an orthogonal/unitary matrix Generalized QR factorization routines (``?geqrf``) now have full ``_lwork`` counterparts. `scipy.linalg.cossin` Cosine Sine decomposition of unitary matrices has been added. The function `scipy.linalg.khatri_rao`, which computes the Khatri-Rao product, was added. The new function `scipy.linalg.convolution_matrix` constructs the Toeplitz matrix representing one-dimensional convolution. `scipy.optimize` improvements ----------------------------------------- The finite difference numerical differentiation used in various ``minimize`` methods that use gradients has several new features: - 2-point, 3-point, or complex step finite differences can be used. Previously only a 2-step finite difference was available. - There is now the possibility to use a relative step size, previously only an absolute step size was available. - If the ``minimize`` method uses bounds the numerical differentiation strictly obeys those limits. - The numerical differentiation machinery now makes use of a simple cache, which in some cases can reduce the number of function evaluations. - ``minimize``'s ``method= 'powell'`` now supports simple bound constraints There have been several improvements to `scipy.optimize.linprog`: - The ``linprog`` benchmark suite has been expanded considerably. - ``linprog``'s dense pivot-based redundancy removal routine and sparse presolve are faster - When ``scikit-sparse`` is available, solving sparse problems with ``method='interior-point'`` is faster The caching of values when optimizing a function returning both value and gradient together has been improved, avoiding repeated function evaluations when using a ``HessianApproximation`` such as ``BFGS``. ``differential_evolution`` can now use the modern ``np.random.Generator`` as well as the legacy ``np.random.RandomState`` as a seed. `scipy.signal` improvements -------------------------------------- A new optional argument ``include_nyquist`` is added to ``freqz`` functions in this module. It is used for including the last frequency (Nyquist frequency). `scipy.signal.find_peaks_cwt` now accepts a ``window_size`` parameter for the size of the window used to calculate the noise floor. `scipy.sparse` improvements ---------------------------------------- Outer indexing is now faster when using a 2d column vector to select column indices. `scipy.sparse.lil.tocsr` is faster Fixed/improved comparisons between pydata sparse arrays and sparse matrices BSR format sparse multiplication performance has been improved. `scipy.sparse.linalg.LinearOperator` has gained the new ``ndim`` class attribute `scipy.spatial` improvements --------------------------------------- `scipy.spatial.geometric_slerp` has been added to enable geometric spherical linear interpolation on an n-sphere `scipy.spatial.SphericalVoronoi` now supports calculation of region areas in 2D and 3D cases The tree building algorithm used by ``cKDTree`` has improved from quadratic worst case time complexity to loglinear. Benchmarks are also now available for building and querying of balanced/unbalanced kd-trees. `scipy.special` improvements ---------------------------------------- The following functions now have Cython interfaces in `cython_special`: - `scipy.special.erfinv` - `scipy.special.erfcinv` - `scipy.special.spherical_jn` - `scipy.special.spherical_yn` - `scipy.special.spherical_in` - `scipy.special.spherical_kn` `scipy.special.log_softmax` has been added to calculate the logarithm of softmax function. It provides better accuracy than ``log(scipy.special.softmax(x))`` for inputs that make softmax saturate. `scipy.stats` improvements ------------------------------------ The function for generating random samples in `scipy.stats.dlaplace` has been improved. The new function is approximately twice as fast with a memory footprint reduction between 25 % and 60 % (see gh-11069). `scipy.stats` functions that accept a seed for reproducible calculations using random number generation (e.g. random variates from distributions) can now use the modern ``np.random.Generator`` as well as the legacy ``np.random.RandomState`` as a seed. The ``axis`` parameter was added to `scipy.stats.rankdata`. This allows slices of an array along the given axis to be ranked independently. The ``axis`` parameter was added to `scipy.stats.f_oneway`, allowing it to compute multiple one-way ANOVA tests for data stored in n-dimensional arrays. The performance of ``f_oneway`` was also improved for some cases. The PDF and CDF methods for ``stats.geninvgauss`` are now significantly faster as the numerical integration to calculate the CDF uses a Cython based ``LowLevelCallable``. Moments of the normal distribution (`scipy.stats.norm`) are now calculated using analytical formulas instead of numerical integration for greater speed and accuracy Moments and entropy trapezoidal distribution (`scipy.stats.trapz`) are now calculated using analytical formulas instead of numerical integration for greater speed and accuracy Methods of the truncated normal distribution (`scipy.stats.truncnorm`), especially ``_rvs``, are significantly faster after a complete rewrite. The `fit` method of the Laplace distribution, `scipy.stats.laplace`, now uses the analytical formulas for the maximum likelihood estimates of the parameters. Generation of random variates is now thread safe for all SciPy distributions. 3rd-party distributions may need to modify the signature of the ``_rvs()`` method to conform to ``_rvs(self, ..., size=None, random_state=None)``. (A one-time VisibleDeprecationWarning is emitted when using non-conformant distributions.) The Kolmogorov-Smirnov two-sided test statistic distribution (`scipy.stats.kstwo`) was added. Calculates the distribution of the K-S two-sided statistic ``D_n`` for a sample of size n, using a mixture of exact and asymptotic algorithms. The new function ``median_abs_deviation`` replaces the deprecated ``median_absolute_deviation``. The ``wilcoxon`` function now computes the p-value for Wilcoxon's signed rank test using the exact distribution for inputs up to length 25. The function has a new ``mode`` parameter to specify how the p-value is to be computed. The default is ``"auto"``, which uses the exact distribution for inputs up to length 25 and the normal approximation for larger inputs. Added a new Cython-based implementation to evaluate guassian kernel estimates, which should improve the performance of ``gaussian_kde`` The ``winsorize`` function now has a ``nan_policy`` argument for refined handling of ``nan`` input values. The ``binned_statistic_dd`` function with ``statistic="std"`` performance was improved by ~4x. ``scipy.stats.kstest(rvs, cdf,...)`` now handles both one-sample and two-sample testing. The one-sample variation uses `scipy.stats.ksone` (or `scipy.stats.kstwo` with back off to `scipy.stats.kstwobign`) to calculate the p-value. The two-sample variation, invoked if ``cdf`` is array_like, uses an algorithm described by Hodges to compute the probability directly, only backing off to `scipy.stats.kstwo` in case of overflow. The result in both cases is more accurate p-values, especially for two-sample testing with smaller (or quite different) sizes. `scipy.stats.maxwell` performance improvements include a 20 % speed up for `fit()`` and 5 % for ``pdf()`` `scipy.stats.shapiro` and `scipy.stats.jarque_bera` now return a named tuple for greater consistency with other ``stats`` functions Deprecated features ================ `scipy` deprecations ---------------------------- `scipy.special` changes -------------------------------- The ``bdtr``, ``bdtrc``, and ``bdtri`` functions are deprecating non-negative non-integral ``n`` arguments. `scipy.stats` changes ----------------------------- The function ``median_absolute_deviation`` is deprecated. Use ``median_abs_deviation`` instead. The use of the string ``"raw"`` with the ``scale`` parameter of ``iqr`` is deprecated. Use ``scale=1`` instead. Backwards incompatible changes ========================== `scipy.interpolate` changes ------------------------------------- `scipy.linalg` changes ------------------------------ The output signatures of ``?syevr``, ``?heevr`` have been changed from ``w, v, info`` to ``w, v, m, isuppz, info`` The order of output arguments ``w``, ``v`` of ``{gv, gvd, gvx}`` is swapped. `scipy.signal` changes ------------------------------- The output length of `scipy.signal.upfirdn` has been corrected, resulting outputs may now be shorter for some combinations of up/down ratios and input signal and filter lengths. `scipy.signal.resample` now supports a ``domain`` keyword argument for specification of time or frequency domain input. Other changes ============= Improved support for leveraging 64-bit integer size from linear algebra backends in several parts of the SciPy codebase. Shims designed to ensure the compatibility of SciPy with Python 2.7 have now been removed. Many warnings due to unused imports and unused assignments have been addressed. Many usage examples were added to function docstrings, and many input validations and intuitive exception messages have been added throughout the codebase. Early stage adoption of type annotations in a few parts of the codebase Authors ======= * @endolith * Hameer Abbasi * ADmitri + * Wesley Alves + * Berkay Antmen + * Sylwester Arabas + * Arne K?derle + * Christoph Baumgarten * Peter Bell * Felix Berkenkamp * Jord?o Bragantini + * Clemens Brunner + * Evgeni Burovski * Matthias Bussonnier + * CJ Carey * Derrick Chambers + * Leander Claes + * Christian Clauss * Luigi F. Cruz + * dankleeman * Andras Deak * Milad Sadeghi DM + * jeremie du boisberranger + * Stefan Endres * Malte Esders + * Leo Fang + * felixhekhorn + * Isuru Fernando * Andrew Fowlie * Lakshay Garg + * Gaurav Gijare + * Ralf Gommers * Emmanuelle Gouillart + * Kevin Green + * Martin Grignard + * Maja Gwozdz * Sturla Molden * gyu-don + * Matt Haberland * hakeemo + * Charles Harris * Alex Henrie * Santi Hernandez + * William Hickman + * Till Hoffmann + * Joseph T. Iosue + * Anany Shrey Jain * Jakob Jakobson * Charles Jekel + * Julien Jerphanion + * Jiacheng-Liu + * Christoph Kecht + * Paul Kienzle + * Reidar Kind + * Dmitry E. Kislov + * Konrad + * Konrad0 * Takuya KOUMURA + * Krzysztof Pi?ro * Peter Mahler Larsen * Eric Larson * Antony Lee * Gregory Lee + * Gregory R. Lee * Chelsea Liu * Cong Ma + * Kevin Mader + * Maja Gw??d? + * Alex Marvin + * Matthias K?mmerer * Nikolay Mayorov * Mazay0 + * G. D. McBain * Nicholas McKibben + * Sabrina J. Mielke + * Sebastian J. Mielke + * Milo? Komar?evi? + * Shubham Mishra + * Santiago M. Mola + * Grzegorz Mrukwa + * Peyton Murray * Andrew Nelson * Nico Schl?mer * nwjenkins + * odidev + * Sambit Panda * Vikas Pandey + * Rick Paris + * Harshal Prakash Patankar + * Balint Pato + * Matti Picus * Ilhan Polat * poom + * Siddhesh Poyarekar * Vladyslav Rachek + * Bharat Raghunathan * Manu Rajput + * Tyler Reddy * Andrew Reed + * Lucas Roberts * Ariel Rokem * Heshy Roskes * Matt Ruffalo * Atsushi Sakai + * Benjamin Santos + * Christoph Schock + * Lisa Schwetlick + * Chris Simpson + * Leo Singer * Kai Striega * S?ren Fuglede J?rgensen * Kale-ab Tessera + * Seth Troisi + * Robert Uhl + * Paul van Mulbregt * Vasiliy + * Isaac Virshup + * Pauli Virtanen * Shakthi Visagan + * Jan Vleeshouwers + * Sam Wallan + * Lijun Wang + * Warren Weckesser * Richard Weiss + * wenhui-prudencemed + * Eric Wieser * Josh Wilson * James Wright + * Ruslan Yevdokymov + * Ziyao Zhang + A total of 129 people contributed to this release. People with a "+" by their names contributed a patch for the first time. This list of names is automatically generated, and may not be fully complete. Issues closed for 1.5.0 ------------------------------- * `#1455 `__: ellipord does returns bogus values if gstop or gpass are negative... * `#1968 `__: correlate2d's output does not agree with correlate's output in... * `#2744 `__: BUG: optimize: '\*\*kw' argument of 'newton_krylov' is not documented * `#4755 `__: TypeError: data type "`__: scipy.optimize maxiter option not working as expected * `#5144 `__: RuntimeWarning on csgraph.shortest_path when edge lengths are... * `#5309 `__: Documentation of 'hybr' and 'lm' inconsistent in optimize.root * `#6026 `__: Replace approx_grad with _numdiff.approx_derivative in scipy.optimize * `#6502 `__: Computing Eigenvalues in an Interval with LAPACK * `#7058 `__: Errors in special.bdtri and special.bdtr for non-integer k values * `#7700 `__: SuperLU does not respect perm_c="NATURAL" * `#7895 `__: Improvements to io.loadmat * `#8205 `__: ValueError in scipy.linalg.eigvalsh for large matrix * `#8278 `__: Memory limit for scipy.sparse.linalg.spsolve with scikit-umfpack * `#8327 `__: scipy.stats.mstats.winsorize NaN handling * `#8341 `__: scipy.stats.ks_2samp for masked and unmasked data give different... * `#8748 `__: scipy.stats.kstest for same distribution: p-values nonuniform * `#9042 `__: optimize: Incorrect statement about \`jac\` in the \`minimize\`... * `#9197 `__: problem with scipy.signal.butter with 1000+ points array * `#9212 `__: EIGH very very slow --> suggesting an easy fix * `#9553 `__: ndimage routines behave badly when output has memory overlap... * `#9632 `__: ndimage.maximum_filter undocumented behaviour using footprint... * `#9658 `__: `scipy.optimize.minimize(method='COBYLA')` not threadsafe * `#9710 `__: stats.weightedtau([1], [1.0]) SEGFAULTs * `#9797 `__: Master Tracker for some Kolmogorov-Smirnov test Issues * `#9844 `__: scipy.signal.upfirdn gives different length matrix versus MATLAB... * `#9872 `__: scipy.signal.convolve is slower when vectorized * `#9913 `__: BUG: No dt in StateSpace operations * `#10014 `__: Distribution names \`weibull_min\`and \`weibull_max\` should... * `#10159 `__: BUG: stats: chisquare returns incorrect results for arrays of... * `#10302 `__: scipy.fft: Add a \`plan\` argument * `#10332 `__: 'Incomplete wav chunk' inconsistent/reason unknown * `#10441 `__: Remove uses of \`numpy.dual\`? * `#10558 `__: Document implicit sum in csr_matrix() constructor * `#10788 `__: LU with full pivoting * `#10841 `__: Unexpected behavior in linalg.blas.dtrmm wrapper * `#10919 `__: optimize._lbfgsb setulb() function violates parameter bounds * `#10963 `__: kstest, ks_2samp: confusing \`mode\` argument descriptions * `#11022 `__: Unexpected Result in factorial function with NaN input * `#11028 `__: Documentation error in optimize.minimize * `#11058 `__: Adding logsoftmax function * `#11076 `__: ValueError: Unknown wave file format * `#11090 `__: Misconception of the median absolute deviation in stats? * `#11095 `__: BUG: find_peaks_cwt test failures in 32-bit Linux wheels * `#11107 `__: scipy.io.mmread generated an error "TypeError: startswith first... * `#11123 `__: Add wrapper for ?gttrf/?gttrs * `#11128 `__: OverflowError in resample_poly (upfirdn) * `#11132 `__: Possible bug: rv_discret.ppf for percentiles 0 and 100 and loc... * `#11163 `__: Comparisons between scipy spmatrix and can sparse.SparseArray... * `#11168 `__: Generalized Pareto variance inaccurate for concentrations near... * `#11169 `__: Add wrapper for ?geqrfp * `#11184 `__: 2-sided Kolmogorov Smirnov returns p-value of 1 * `#11185 `__: The .roots() or solve() function of scipy.interpolate.CubicHermiteSpline... * `#11190 `__: Add wrapper for ?tbtrs * `#11200 `__: Can no longer slice csr_matrix in 1.3.0 * `#11207 `__: _minimize_scalar_bounded: reference before assignment * `#11216 `__: linprog: interior-point: Cholmod reordering can be reused * `#11223 `__: Add wrappers for ?pttrf, ?pttrs * `#11224 `__: Add wrapperfor ?pteqr * `#11235 `__: MAINT: Missleading Error Message for IIR Filter * `#11244 `__: Missing reference in \`scipy.optimize.line_search\` * `#11262 `__: Hermitian Eigenvalue Problem eigh() API and wrapper change proposal * `#11266 `__: Sparse matrix constructor data type detection changes on Numpy... * `#11270 `__: CI failing: Travis CI Py36 refguide and Linux_Python_36_32bit_full... * `#11279 `__: linalg.eigh checks whole array for finite values * `#11295 `__: CI: azure does not auto-cancel old jobs on pushes * `#11299 `__: stats.truncnorm.rvs 100x slower in v1.4.x than v1.3.3 * `#11315 `__: BUG: special: rgamma on negative integers smaller -34 * `#11319 `__: Missing \`int64_t\` declaration in rectangular_lsap.cpp * `#11323 `__: Compilation failure due to missing symbol pthread_atfork * `#11332 `__: BUG: directed_hausdorff distance on sets u and v when u is a... * `#11350 `__: Khatri-Rao product * `#11354 `__: ENH: Add wrapper for ?gejsv * `#11361 `__: Dropped NaN in eval_genlaguerre function * `#11363 `__: Dropped NaN in hyperu function * `#11365 `__: scipy.stats.binned_statistic regressed in v1.4.0 * `#11369 `__: Dropped NaN in eval_hermite * `#11370 `__: Dropped NaN in eval_gegenbauer * `#11373 `__: Add wrapper for ?gtsvx * `#11374 `__: Add wrapper for ?ptsvx * `#11391 `__: csgraph.minimum_spanning_tree loses precision * `#11398 `__: Update stats to cope with \`np.random.Generator\` machinery * `#11412 `__: Array copying causes unwanted type casting from complex to float... * `#11415 `__: Where is the Wiener Filter derived from? * `#11416 `__: _lib._util.getargspec_no_self is missing KEYWORD_ONLY support * `#11428 `__: Documentation on SHGO inequality constraints appears contradictory * `#11429 `__: Add LAPACK's ZUNCSD cosine sine decomposition * `#11438 `__: run_dualannealing passes bounds incorrectly in benchmarks/optimize.py * `#11441 `__: Can't run optimize benchmarks * `#11442 `__: Chebyshev weights * `#11448 `__: Wrongly typed comparison in integrate.quad * `#11458 `__: BUG: maximum_bipartite_matching produces infeasible solution * `#11460 `__: CI failing: 2 Travis CI tests fail with numpy build or version... * `#11462 `__: Bug on "++" initialization on "kmeans2" * `#11464 `__: Shouldn't data type of KDE evaluation should be like in the input... * `#11468 `__: performance of binned_statistics_2d 100x slowdown from 1.3.2... * `#11484 `__: Callback function doesn't give the same value as the one being... * `#11492 `__: Confusing dendrogram labelling * `#11493 `__: scipy.optimize.least_squares fails if the return array of the... * `#11494 `__: Error performing kronecker product between large sparse vectors * `#11503 `__: medfilt produces 0 on input of length 1 * `#11529 `__: Pyflakes generates almost 700 warnings. * `#11566 `__: irfft/irfft2/irfftn docs are slightly confusing re: input type. * `#11572 `__: least_squares: too small tolerances not catched with method='lm' * `#11581 `__: DOC: scipy.interpolate.RectSphereBivariateSpline * `#11586 `__: Differential evolution breaks with LinearConstraints with sparse... * `#11595 `__: scipy.spatial.cKDTree construction slow for some datasets * `#11598 `__: output of special.voigt_profile when sigma=0 * `#11601 `__: linalg tests failing in runtests.py * `#11602 `__: scipy.optimize.linear_sum_assignment returns reverse diagonal... * `#11610 `__: Analytic formula for normal moments * `#11611 `__: Build failure with gfortran 10 * `#11613 `__: TST, MAINT: test_quadpack TestCtypesQuad wasn't fully migrated... * `#11630 `__: SmoothBivariateSpline bbox parameter * `#11635 `__: typo in docstring of scipy.stats.norminvgauss * `#11637 `__: BUG: core dumps when calling scipy.interpolate.interp1d with... * `#11638 `__: better documentation for 'return_all' option in minimize(Nelder... * `#11652 `__: TST, MAINT: CI failures for pre-release NumPy wheels * `#11659 `__: optimize.fmin_l_bfgs_b needs bound check and appropiate error... * `#11660 `__: BUG/ENH: distribution.ncf with nc=0 returns nan * `#11661 `__: scipy.ndimage.convolve1d and correlate1d don't behave properly... * `#11669 `__: p-value varies with the order of the data * `#11676 `__: documentation of scipy.spatial.HalfspaceIntersection: wrong method... * `#11685 `__: Rotation cannot be expressed as matrix * `#11686 `__: MAINT: mypy imports of Cython "modules" * `#11693 `__: TestDifferentialEvolutionSolver::test_L4 failing in CI * `#11696 `__: DOC: incorrect compiler information for macOS in docs * `#11709 `__: eigh() tests fail to pass, crash Python with seemingly ramdom... * `#11763 `__: Small error in gamma continuous rv fit comments * `#11769 `__: truncnorm.rvs Weird Behaviors * `#11770 `__: crash in TestEigh::test_value_subsets * `#11795 `__: trapz distribution mean computed using single precision * `#11800 `__: Segmentation fault in scipy.odr for multidimensional independent... * `#11811 `__: pyflakes silently failing on travis-ci * `#11826 `__: Error with _fblas * `#11827 `__: \`fft.tests.test_numpy.test_multiprocess\` hangs on Python3.8... * `#11835 `__: tests with \`multiprocessing\` hang on Python 3.8 on macOS * `#11839 `__: linalg.expm returns nans with RuntimeWarning: overflow encountered... * `#11856 `__: Documentation of fit methods for \`weibull_min\` and \`exponweib\`... * `#11868 `__: Function always evaluated twice when using HessianUpdateStrategy... * `#11875 `__: Typo in the docstring of simps() * `#11877 `__: kmeans2 '++' method is orders of magnitude slower than sklearn.cluster.KMeans() * `#11884 `__: The upper code lines are dead code * `#11886 `__: Array shape mismatch in scipy.optimize * `#11892 `__: BUG: stats: Incorrect handling of edges cases by ttest_rel and... * `#11908 `__: LinearOperator should have ndim attribute * `#11910 `__: Documentation missing for what M is in init argument * `#11922 `__: macOS actions CI has started failing in last couple of days. * `#11928 `__: DOC: signal: Wrong description for sepfir2d, cspline2d, qspline2d * `#11944 `__: curve_fit documentation unclear on default value of absolute_sigma * `#11945 `__: Add a (potentially temporary) py.typed file? * `#11949 `__: ValueError 'k exceeds matrix dimensions' for sparse.diagonal()... * `#11951 `__: BUG: asv benchmark failed because of cython version * `#11967 `__: BLD: Azure windows runs complain about drives * `#11973 `__: oaconvolve(a,b,'same') differs in shape from convolve(a,b,'same')... * `#12002 `__: pybind11 license * `#12003 `__: MAINT: circular SphericalVoronoi input * `#12015 `__: Reordering of CSC matrix breaks when you go above int32 limits * `#12031 `__: Documentation Rendering Issues Visible in CircleCI Artifacts * `#12037 `__: MAINT, CI: new Cython 3.0a4 issue * `#12087 `__: DOC: some odr models are missing docs * `#12119 `__: signal.fftconvolve no longer convolves types f8 and numpy.float64 * `#12149 `__: Documentation of Rosenbrock function * `#12173 `__: Large memory usage when indexing sparse matrices with \`np.ix_\` * `#12178 `__: BUG: stats: Some discrete distributions don't accept lists of... * `#12220 `__: BUG, REL: gh_lists.py compromised scraping * `#12239 `__: BUG: median absolute deviation handling of nan * `#12301 `__: integer overflow in scipy.sparse.sputils.check_shape when matrix size > 2^32 * `#12314 `__: scipy.spatial.transform.Rotation multiplication does not normalize quaternion Pull requests for 1.5.0 ------------------------------ * `#6510 `__: Add Eigenvalue Range Functionality for Symmetric Eigenvalue Problems * `#9525 `__: BUG: SuperLU 'NATURAL' order applies a column permutation * `#9634 `__: Add the number of Jacobian evaluations to the output of L-BFGS-B. * `#9719 `__: ENH: Added kstwo probability distribution for two-sided one-sample... * `#9783 `__: WIP: optimize: added (dense) interpolative decomposition redundancy... * `#10053 `__: Adding docstring to weibull_min and weibull_max based on issue... * `#10136 `__: DEP: Add warning to linprog_verbose_callback * `#10380 `__: ENH: add geometric_slerp * `#10602 `__: MAINT: optimize: refactor common linprog arguments into namedtuple * `#10648 `__: Bounds for the Powell minimization method * `#10673 `__: ENH: approx_fprime --> approx_derivative * `#10759 `__: ENH: calculation of region areas in spatial.SphericalVoronoi * `#10762 `__: BENCH: optimize: more comprehensive linprog benchmarking * `#10796 `__: ENH exact p-values of wilcoxon test in scipy.stats * `#10797 `__: ENH: linalg: LU with full pivoting (wrappers for ?getc2/?gesc2) * `#10824 `__: ENH: Fast gaussian kernel estimator * `#10942 `__: BUG: prevent bound violation in L-BFGS-B optimize method * `#11003 `__: ENH: add scipy.linalg.convolution_matrix * `#11023 `__: improving error message for cubic-interpolate with duplicates * `#11045 `__: MAINT: make bdt{r,rc,ri}() functions accept double n,k args +... * `#11063 `__: Fix documentation error in optimize.minimize * `#11069 `__: ENH: stats.dlaplace.rvs improvements * `#11071 `__: DOC: Added examples to maximum_position in ndimage * `#11075 `__: DOC: Update stylistic consistency in multiple files * `#11097 `__: BUG: stats: fixing chisquare to return correct results for arrays... * `#11110 `__: ENH: special: Cythonise erfinv, erfcinv * `#11112 `__: BUG: special: Return NaN outside the domain of \`eval_hermite\` * `#11114 `__: BUG: special: fix \`hyp1f1\` for nonnegative integral \`a\` and... * `#11115 `__: DOC: special: add docstrings for \`kei\`, \`ker\`, \`keip\`,... * `#11130 `__: ENH: support for circular input * `#11136 `__: BUG: expm handling of empty input * `#11138 `__: DOC: stylistic consistency, punctuation, etc. * `#11139 `__: MAINT: cluster: use cython_blas, remove handwritten BLAS wrappers * `#11146 `__: DOC: update docs on bp parameter for detrend * `#11151 `__: DOC: special: add docstrings for \`bei\`, \`ber\`, \`beip\`,... * `#11156 `__: ENH: add input validation for ellipord. * `#11157 `__: DOC: stylistic revision, punctuation, consistency * `#11160 `__: ignore warning on 0 \* inf in basin hopping * `#11162 `__: DOC: minor stylistic revision, undo changes * `#11164 `__: ENH/ BUG: Pydata sparse equality * `#11171 `__: Fix dtype validation of "seuclidean" metric V parameter * `#11177 `__: BUG: stats: Improve genpareto stats calculations. * `#11180 `__: MAINT: stats: Some clean up in test_distributions.py. * `#11187 `__: ENH: add functionality log_softmax to SciPy.special. * `#11188 `__: MAINT: add rvs method to argus in scipy.stats * `#11196 `__: DOC: special: add to docstrings of Kelvin zeros functions * `#11202 `__: BUG: fix edge counting in shortest_path * `#11218 `__: BUG: scipy/interpolate: fix PPoly/Cubic\*Spline roots() extrapolation... * `#11225 `__: Add a warning to constant input for spearmanr() function * `#11226 `__: Speed up of interior-point method for cholesky solver * `#11229 `__: BUG: Explicit dtype specification in _upfirdn.py * `#11230 `__: Additional citation for optimize tutorial * `#11231 `__: Adds SLSQP test for duplicate f-evals (#10738) * `#11236 `__: MAINT: Improved error message for Wn range in iirfilter. * `#11245 `__: ENH: optimize: dense redundancy removal routine optimizations * `#11247 `__: MAINT: Remove _lib/_numpy_compat.py * `#11248 `__: BUG: rv_discrete.ppf() to handle loc * `#11251 `__: DOC: add reference for linesearch zoom algorithm * `#11253 `__: BUG: fix kendalltau issue where p-value becomes >1 * `#11254 `__: MAINT: make special.factorial handle nan correctly * `#11256 `__: DOC: Updated documentation for scipy.linalg.qr * `#11265 `__: Fix: Can no longer slice csr_matrix in 1.3.0 * `#11267 `__: BUG: Rework the scaling in the ks_2samp two-sided exact test. * `#11268 `__: DOC: example of NonLinearConstraint * `#11269 `__: Fix: Sparse matrix constructor data type detection changes on... * `#11276 `__: BLD: update minimum Python, NumPy, Cython, Pybind11 versions * `#11277 `__: MAINT: Cleanup conditionals for unsupported numpy verisons * `#11278 `__: MAINT: Cleanup stats.iqr workarounds for unsupported NumPy versions * `#11282 `__: TST/CI: improve traceback formatting for test failures * `#11284 `__: fix docs & behavior for mode sequences in ndimage filters * `#11285 `__: DOC: special: complete the docstrings of Chi-square functions * `#11286 `__: BUG: make loadmat/savemat file opening close resources correctly * `#11287 `__: CI: skip Azure and TravisCI builds on merges and direct pushes... * `#11288 `__: DOC: Fix import in scipy.io.wavfile.read sample code * `#11289 `__: BUG: Use context manager for open * `#11290 `__: MAINT: Remove _lib._version in favour of _lib._pep440 * `#11292 `__: DOC: special: add docstrings for various convenience functions * `#11293 `__: DOC: special: fix typo in \`chdtri\` docstring * `#11296 `__: DOC: special: add to docstrings of Bessel zeros and derivatives * `#11297 `__: DOC: special: add parameters/returns sections for Bessel integrals * `#11300 `__: MAINT: Update vendored uarray version * `#11301 `__: CI: azure conditions should require succeeded() * `#11302 `__: ENH: build infrastructure for ILP64 BLAS + ARPACK conversion * `#11303 `__: DOC: special: fix typo in \`besselpoly\` docstring * `#11304 `__: ENH: MAINT: Rewrite of eigh() and relevant wrappers * `#11306 `__: TST: skip test_aligned_mem linalg test that is crashing on ppcle64 * `#11307 `__: MAINT: Fix typo 'solutuion' -> 'solution' * `#11308 `__: ENH: do not create 1d array out of a scalar * `#11310 `__: MAINT: clean up object array creation, scalar/1d confusion * `#11311 `__: DOC: Specify custom callable option for metric in cluster.hierarchy.fclusterdata * `#11316 `__: BUG: special: fix behavior for \`rgamma\` zeros * `#11317 `__: BUG: fix floating-point literal comparisons under C99 * `#11318 `__: TST: optimize: mark two linprog tests for skipping * `#11320 `__: BUG: Include \`int64_t\` declaration to \`rectangular_lsap.cpp\` * `#11330 `__: MAINT: Update vendored pypocketfft version * `#11333 `__: BUG: directed_hausdorff subset fix * `#11335 `__: [ENH] sparse: Loosen check for sparse outer indexing fast path * `#11337 `__: Undefined name 'e' in pavement.py * `#11338 `__: scipyoptdoc.py: Remove unused variable 'sixu' * `#11340 `__: xrange() was removed in Python 3 in favor of range() * `#11342 `__: range() was removed in Py3 in _binned_statistic.py * `#11343 `__: BUG: constants: fix 'exact' values table * `#11347 `__: ENH: add input validation function and apply it to needed functions * `#11348 `__: MAINT: remove six.string_types usages * `#11349 `__: MAINT: minor doc fix _minimize_trustregion_constr * `#11353 `__: MAINT: py3 remove various six usages * `#11358 `__: ENH: optimize: Use CSR format instead of LIL for speed * `#11362 `__: MAINT: sys.version_info >= 3.5 * `#11364 `__: ENH: cache square of sums for f_oneway * `#11368 `__: ENH: add optional argument, "include_nyquist", for freqz() * `#11372 `__: BENCH: optimize: added linprog presolve benchmarks * `#11376 `__: ENH: Add wrapper for ?gttrf/?gttrs * `#11377 `__: MAINT: Remove Python 2 code from tools/authors.py * `#11378 `__: ENH (WIP): Python wrapper for ?tbtrs * `#11379 `__: MAINT: Remove six.with_metaclass from benchmarks/cython_special.py * `#11380 `__: BUG: sparse/isolve: bicg and qmr don't treat x0 correctly * `#11382 `__: MAINT: remove error throw in binned_statistic_dd() on non-finite... * `#11383 `__: MAINT: _lib: remove py2 compat shims in getargspec * `#11384 `__: MAINT: Use numpy scalar types directly * `#11385 `__: ENH: special: add spherical Bessel functions to \`cython_special\` * `#11389 `__: MAINT: line.startswith shouldn't be bytes * `#11393 `__: ENH: Speed up truncnorm's ppf()and rvs() methods * `#11394 `__: MAINT: Remove self._size (and self._random_state) from stats... * `#11395 `__: correction in error message (%d->%g format) * `#11396 `__: DOC: revert gh10540, removing mtrand * `#11397 `__: MAINT: differential_evolution accepts np.random.Generator * `#11402 `__: ENH: stats can use np.random.Generator * `#11404 `__: ENH: add docstring of butter() for transfer function syntax problem * `#11405 `__: DOC: Fix "see also" for SmoothBivariateSpline * `#11408 `__: ENH: Add a \`plan\` argument to FFT functions in \`scipy.fft\` * `#11411 `__: MAINT: check minimize duplicate evaluations * `#11418 `__: ENH: Linalg: Python wrapper for ?geqrfp * `#11419 `__: TST: Python 3.7 mac OS gcc multibuild fix * `#11423 `__: ENH: Add tool to lint diffs * `#11425 `__: FIX: _array_newton should preserve complex inputs * `#11426 `__: MAINT: licence for global optimization benchmarks * `#11431 `__: Make median_absolute_deviation scale argument aligned w/iqr * `#11432 `__: Fix error message typo * `#11433 `__: DOC: Remove L from longs * `#11434 `__: MAINT: Python3 improvements to refguide_check.py * `#11435 `__: DOC: Update runtest --parallel help * `#11436 `__: MAINT: Remove checks for sys.version < 3.5 * `#11437 `__: DOC: Fix documentation issue * `#11439 `__: Support path objects (PEP 519) in mmio functions * `#11440 `__: correct bounds pass in run_dualannealing for benchmarks/optimize.py * `#11443 `__: BENCH: optimize_linprog remove ImportError exception * `#11453 `__: BUG: sparse: convert csc/csr indices to int64 as needed * `#11454 `__: DOC: Remove caveat on \`maximum_bipartite_matching\` * `#11455 `__: BUG: Fix _lib._util.getargspec_no_self lack of KEYWORD_ONLY support. * `#11456 `__: Implementation of khatri_rao product * `#11459 `__: BUG: fix augmentation being broken in maximum_bipartite_matching * `#11461 `__: MAINT: minor spelling corrections in comments in SciPy.sparse.linalg.arpack * `#11467 `__: [MRG] Make result data type of KDE evaluation like in the input... * `#11469 `__: Update integrate.quad documentation * `#11472 `__: Fixed result typo * `#11476 `__: DOC: stats: Copy-edit the anderson docstring. * `#11478 `__: ENH: avoid unnecessary array copies in matrix product * `#11481 `__: BUG: Make special.hyperu return nan if any argument is nan * `#11483 `__: BUG: Fixed \`_kpp\` initialization on \`scipy.cluster.vq\`, closing... * `#11485 `__: ENH: Update docstring of class KrylovJacobian to fix #2744 * `#11486 `__: BUG: make special.eval_hermite return nan if second argument... * `#11487 `__: ENH: improve docstring of correlate and correlate2d to fix #1968 * `#11488 `__: FIX: change "func -> fun" of scipy.optimize _root.py to solve... * `#11489 `__: BUG: fixes typo introduced in PR #11253 in stats.mstats.kendalltau() * `#11490 `__: DOC: fix typo in scipy/io/matlab/mio4.py * `#11495 `__: MAINT: refactor slsqp to fix issue in callback function * `#11498 `__: [DOC] mention graph cuts in maximum flow docstring * `#11499 `__: DOC: Improve documentation of scipy.signal.signaltools.wiener * `#11506 `__: DOC: Fix typo in documentation of scipy.stats.morestats * `#11508 `__: ENH: avoid copy on sparse __init__ when dtype is given * `#11509 `__: ENH: avoid unnecessary array copies in matrix product (again) * `#11510 `__: [DOC] An ex. for creating arbitrary size tri-diagonal * `#11511 `__: TST: pin numba for Travis/sparse * `#11513 `__: TST: disable NumPy cache dir ppc64le * `#11514 `__: BUG: make special.eval_genlaguerre return nan if passed nan * `#11517 `__: ENH: improve sparse.lil.tocsr performance * `#11519 `__: Fix fresnel documentation * `#11520 `__: BUG: make special.eval_gegenbauer return nan if passed nan * `#11524 `__: ENH: Cosine Sine Decomposition * `#11526 `__: BUG: fix SLSQP max iteration setting to fix #4921 * `#11527 `__: ENH: improve docstring of weibull_min_gen and weibull_max_gen... * `#11530 `__: MAINT: Removed 3 unused imports, 3 unused assignments from ndimage. * `#11531 `__: DOC: fix typos in bdtr and bdtrc from gh PR 11045 * `#11532 `__: MAINT: Fixed several unused imports and unused assignments from... * `#11533 `__: MAINT: Fixed about 100 unused imports, unused assignment warnings... * `#11534 `__: FIX: Allow non-native byte order inputs to scipy.fft * `#11535 `__: MAINT: Fixed several unused imports in _lib. * `#11536 `__: MAINT: Fixed several unused imports and unused assignments in... * `#11537 `__: MAINT: Removed an unused import in scipy/constants. * `#11538 `__: MAINT: Fixed several unused imports in scipy/fft. * `#11539 `__: MAINT: Fixed several unused imports and unused assignments in... * `#11540 `__: MAINT: Fixed two unused imports in scipy/misc. * `#11541 `__: MAINT: Fixed several unused imports and unused assignments in... * `#11542 `__: MAINT: Fixed an unused import in scipy/odr. * `#11543 `__: MAINT: Fixed several unused imports and unused assignments in... * `#11544 `__: MAINT: Fixed unused imports and unused assignments in scipy/integrate. * `#11545 `__: MAINT: Removed unused imports and fixed unused assignments in... * `#11546 `__: MAINT: Removed unused imports; fixed unused assignments in scipy/signal. * `#11547 `__: MAINT: Removed unused imports; fixed unused assignments in scipy/spatial * `#11548 `__: MAINT: Removed unused imports; fixed unused assignments in scipy.sparse. * `#11549 `__: MAINT: Replace xrange with range * `#11560 `__: MAINT: stats: remove an _argcheck call * `#11573 `__: MAINT: Removed unused imports; fixed unused assignments in scipy/stats. * `#11574 `__: MAINT: Small change to \`optimize.nnls\` error messages. * `#11575 `__: MAINT: Update sytrd/hetrd tests * `#11582 `__: MAINT: fix typo in quadpack.py closes #11448 * `#11585 `__: TST: add openblas_support.py * `#11587 `__: BUG: Differential evolution with LinearConstraint with sparse... * `#11588 `__: MAINT: Fully display problem size in lsmr/lsqr. * `#11589 `__: MAINT: Remove Python 2 workarounds * `#11590 `__: MAINT: Remove Python2 module init * `#11605 `__: Standardization of bounds in _linprog_util.py * `#11608 `__: BUG: fix use of is in DE callback * `#11614 `__: TST, MAINT: TestCtypesQuad skip with pytest * `#11619 `__: ENH: add nan_policy argument and functionality to stats.mstats.winsorize * `#11621 `__: MAINT: Cleanup uses of PY_VERSION_HEX, NPY_PY3K in ndimage * `#11622 `__: MAINT: Cleanup uses of PY_VERSION_HEX, NPY_PY3K in sparse * `#11623 `__: MAINT: Remove unnecessary 'from __future__ import ...' statements * `#11626 `__: MAINT: Cleanup uses of PY_VERSION_HEX * `#11627 `__: ENH: add analytic formula for normal moments * `#11628 `__: MAINT, TST: adjust azure for matplotlib release * `#11631 `__: Revert to old behaviour for constant cost matrices in \`linear_sum_assignment\` * `#11632 `__: MAINT: Define ARRAY_ANYORDER with DEF instead of cdef * `#11639 `__: BUG: interpolate/interp1d: fail gracefully on all-nan inputs * `#11640 `__: MAINT: Fix BLAS3 trmm wrapper for "side" arg * `#11642 `__: TST, MAINT: remove dead code in Travis CI * `#11643 `__: MAINT: fix conversion in binom_test * `#11645 `__: MAINT: Assorted clean up. * `#11646 `__: MAINT: Remove unnecessary 'from __future__ import ...' statements * `#11647 `__: DOC: document return_all arguments * `#11648 `__: Perform geometric slerp in quaternion space * `#11651 `__: DOC: Update paper URL in lambertw documentation * `#11653 `__: PERF: Switch to C++ STL std::nth_element * `#11655 `__: MAINT: Remove Python2 cStringStream * `#11657 `__: ENH: Add wrapper for ?pttrf/?pttrs * `#11664 `__: ENH: Add wrapper for ?gejsv * `#11665 `__: ENH: Add wrapper for ?pteqr * `#11667 `__: BUG: Non-central Fisher distribution (fix nan-values when nc=0) * `#11668 `__: ENH: Add wrapper for ?gtsvx * `#11671 `__: TST, CI: restore Azure temporarily * `#11672 `__: Add warning to medfilt when array size < kernel_size * `#11674 `__: TST: bump test precision for two np.dot related linalg tests. * `#11675 `__: MAINT: pycodestyle clean-up * `#11677 `__: ENH: Add wrapper for ?ptsvx * `#11679 `__: BENCH: cKDTree benchmarks added: balanced/unbalanced tree (related... * `#11680 `__: MAINT: rng_integers allows RandomState.randint or Generator.integers * `#11683 `__: BUG: fix mode='mirror' on length 1 axes * `#11684 `__: BUG: fix scipy.special.voigt_profile * `#11687 `__: MAINT: sparse.linalg: avoid importing from \`np.core\` * `#11688 `__: ENH: mypy: get specific about ignoring missing imports * `#11690 `__: MAINT: mypy: fix errors about incompatible types in lists * `#11692 `__: MAINT: mypy: fix remaining type errors * `#11694 `__: TST, MAINT: bump to OpenBLAS 0.3.9 stable, raise tol for Win... * `#11697 `__: DOC: fix pdf of norminvgauss in scipy.stats * `#11701 `__: MAINT: special: add rudimentary types for \`_ufuncs\` extension... * `#11702 `__: BUG: Fixed a post-merge bug for eigh() * `#11703 `__: Improves docstring with consistent L2-norm * `#11705 `__: DOC: Slerp the SphericalVoronoi docstring * `#11706 `__: ENH: mypy: add \`--mypy\` option to \`runtests.py\` * `#11710 `__: ENH: Modified stats.kstest() to use the exact stats.kstwo.sf()... * `#11715 `__: DOC: add .. versionadded:: to as_matrix/from_matrix in spatial/transf? * `#11716 `__: BENCH: fix benchmark imports for \`\`optimize_linprog.py\`\` * `#11721 `__: MAINT: io: Remove now-unnecessary \`# type: ignore\` * `#11722 `__: MAINT: mypy: remove mpmath from the ratchet * `#11726 `__: Handle constant input for scipy.stats.f_oneway * `#11729 `__: BENCH: optimize: added infeasible benchmarks for linprog * `#11731 `__: fix inaccurate information about Mac OS compiler (#11696) * `#11733 `__: Fix inaccurate docstring example of HalfspaceIntersection * `#11734 `__: Doc: fix inaccurate docstring of SmoothBivariateSpline. * `#11735 `__: Bug: stats: fix wrong shape from median_absolute_deviation for... * `#11736 `__: ENH: add input validations and its tests for FITPACK in fitpack2.py * `#11737 `__: BUG: Prevent crashes due to MKL bug in ?heevr * `#11739 `__: MAINT: special: add type stubs for \`_test_round.pyx\` * `#11740 `__: MAINT: special: remove unused specfun f2py wrappers * `#11741 `__: BUG: fix small tolerances handling for minpack and add a test. * `#11743 `__: Doc: fix docstring of rfft, rfft2, rfftn, irfft, irfft2, irfftn... * `#11744 `__: MAINT: Remove unused py3k.h code * `#11745 `__: DOC: stats: Clean up ncf documentation. * `#11748 `__: MAINT: special: type \`cython_special\` as \`Any\` * `#11750 `__: MAINT: type hints for \`_spherical_voronoi\` * `#11752 `__: DOC: fix docstring of scipy.optimize.least_squares * `#11753 `__: ENH: add input validation for dendrogram and a test. * `#11755 `__: MAINT: Replace uses of tostring with tobytes * `#11757 `__: ENH: improve binned_statistics_2d performance. * `#11759 `__: ENH: optimize: add HiGHS methods to linprog * `#11760 `__: MAINT: Remove FileStream replaced by GenericStream * `#11761 `__: MAINT: Replace npy_3kcompat.h shims * `#11765 `__: TST: Speedup test_pascal which is VERY slow on Azure * `#11766 `__: TST: speed up differential_evolution L8 test * `#11767 `__: Change comment in continuous rv gamma fit function * `#11776 `__: Add domain option for resample. * `#11784 `__: BUG: Fixed calculation of nonzero elements in scipy.sparse.random * `#11786 `__: ENH: stats: add axis keyword argument to scipy.stats.rankdata * `#11789 `__: Doc: fix docstring of scipy.spatial.chebyshev * `#11792 `__: DOC: dev: add guidelines for developing public Cython APIs * `#11794 `__: MAINT: add comments explaining a problem in cython_optimize organization * `#11796 `__: DOC: add a note about precision losing in csgraph.minimum_spanning_tree... * `#11797 `__: ENH: Allow negative \`axis\` in \`interpolate.BSpline\`. Also... * `#11798 `__: Add simplify_cells parameter to scipy.io.loadmat * `#11801 `__: MAINT, DOC: minor changes of ratio-of-uniforms in scipy.stats * `#11802 `__: BUG: fix scipy.odr to handle multidimensional independent and... * `#11803 `__: scipy.stats.trapz: Use analytic formulas for stats and entropy. * `#11808 `__: DOC: add Examples in the scipy.interpolate.interpn docstring. * `#11809 `__: Duplicate entries are added together in csr_matrix constructor * `#11813 `__: MAINT: bump pyflakes to version 2.1.1 * `#11814 `__: BUG: scipy.sparse.csr doctest failing with incorrect output value * `#11817 `__: DOC: add Examples in the scipy.optimize.leastsq docstring * `#11820 `__: ENH: Raise an error on incorrect bounds format in optimize.fmin_l_bfgs_b * `#11822 `__: CI: add github actions for macOS * `#11824 `__: DOC: add Examples in scipy.optimize.line_search docstring (line_search_wolfe2) * `#11830 `__: TST: Always use fork for multiprocessing in fft tests * `#11831 `__: DOC: add Examples and Returns in scipy.misc.central_diff_weights... * `#11832 `__: DOC: stats: Some small corrections to a couple docstrings. * `#11833 `__: BUG: Fix compiler_name when there are paths used in flags * `#11836 `__: MAINT: re-introduce multiprocessing tests on Python3.8 * `#11837 `__: Doc: add Examples in scipy.optimize.fsolve docstring * `#11838 `__: Doc: add Examples in scipy.sparse.linalg.minres docstring * `#11840 `__: BUG: sparse.linalg: fix overflow in expm intermediate computation * `#11842 `__: BLD: fix build with gfortran 10 * `#11843 `__: MAINT: Simplify floats in constants.py * `#11847 `__: DOC: add a tutorial of scipy.optimize.linprog * `#11849 `__: ENH: speed up geninvgauss by using cython * `#11852 `__: CI: remove osx from travisCI * `#11857 `__: BUG: Change parameter fc of gausspulse to float. * `#11861 `__: order = degree + 1 for splines * `#11863 `__: Make g77 ABI wrapper work with gfortran ABI lapack * `#11866 `__: MAINT: add type ignores to sympy and matplotlib imports * `#11867 `__: CI: Add arm64 in travis-ci * `#11869 `__: DOC: signal: Add an example to the lsim2 docstring. * `#11870 `__: DOC: signal: Use impulse instead of impulse2 in the impulse example... * `#11871 `__: ENH: type ufuncs in special as ufuncs instead of Any * `#11872 `__: BUG: avoid recomputing in scipy.optimize.optimize.MemoizeJac * `#11873 `__: DOC: signal: Fix ODE in impulse and impulse2 docstrings. * `#11874 `__: DOC: add Examples of docstring for scipy.interpolate.approximate_taylor_polynomial * `#11878 `__: DOC: fixed a typo under scipy/integrate/quadrature.py * `#11879 `__: BUG: Fix index arrays overflow in sparse.kron * `#11880 `__: DOC: stats: Add Examples for bartlett, fligner, levene. * `#11881 `__: MAINT: normalise numpy-->np in optimize.py * `#11882 `__: DOC: add Examples for scipy.io.readsav docstring. * `#11883 `__: DOC: add Returns and Examples for scipy.ndimage.correlate() docstring * `#11885 `__: BUG: stats: Handle multidimensional arrays in f_oneway, and more. * `#11889 `__: DOC: signal: Unify lsim and lsim2 examples. * `#11896 `__: BUG: stats: Fix handling of size 0 inputs for ttest_rel and ttest_ind. * `#11897 `__: DOC: Remove misleading default values from fit method * `#11898 `__: MAINT: LinearVectorFunction.J is ndarray closes #11886 * `#11902 `__: BUG: linalg: test_heequb failure * `#11904 `__: fix real-to-real transforms for complex inputs and overwrite_x=True * `#11906 `__: DOC: stats: fix error caused by trapz docstring * `#11907 `__: BUG: stats: fixed SEGFAULT from Issue #9710 * `#11912 `__: ENH: Respect matplotlib color palette with hierarchy/dendrogram. * `#11914 `__: DOC: refine doc for spatial.distance.squareform * `#11915 `__: ENH: Ndim linear operator * `#11919 `__: ENH: expose "window_size" parameter in find_peaks_cwt() * `#11920 `__: DOC: explain M, diffev * `#11923 `__: CI: macOS install swig closes #11922 * `#11924 `__: DOC: add Examples for scipy.optimize.bracket() docstring * `#11930 `__: DOC: add Examples and clean up for signal.qspline1d and signal.qspline_eval... * `#11931 `__: DOC: add Examples for sparse.linalg.bicg docstring. * `#11933 `__: DOC: Add original reference for Yao-Liu objective functions * `#11934 `__: DOC, MAINT: mailmap update * `#11935 `__: DOC: make scipy.stats.mode documentation reflect that the function... * `#11936 `__: ENH: special: add type stubs for \`orthogonal.py\` * `#11937 `__: DOC: Add docstring examples to fft2, ifft2, io.savemat * `#11938 `__: MAINT: add helper function for deprecating Cython API functions * `#11942 `__: MAINT: ignore conditional import in _lib/_util * `#11943 `__: MAINT: special: add types for geterr/seterr/errstate * `#11946 `__: MAINT: add py.typed marker * `#11950 `__: TST:MAINT: separated and stabilized heequb tests * `#11952 `__: DOC: update toolchain roadmap for py38, C99, C++11/14 * `#11957 `__: MAINT: Use np.errstate context manager instead of np.seterr. * `#11958 `__: MAINT: interpolate: Remove some trailing spaces. * `#11960 `__: MAINT: Cleanup Python2 compatibility code * `#11961 `__: MAINT: Remove numpy/npy_3kcompat.h from _superluobject.c * `#11962 `__: DOC: Fix type of \`codes\` in docstring of \`_vq._vq()\` * `#11964 `__: MAINT: Cleanup unused IS_PYPY * `#11969 `__: DOC: add Examples and fix docstring for special.airye * `#11970 `__: BUG: sparse: 'diagonal' of sparse matrices fixed to match numpy's... * `#11974 `__: BUG: Reshape oaconvolve output even when no axes are convolved * `#11976 `__: MAINT: add logo for github actions * `#11977 `__: CI: test bleeding edge Python * `#11979 `__: DOC: add Examples for stats.ranksums() docstring. * `#11982 `__: Fix KMeans++ initialisation slowness * `#11983 `__: DOC: add Examples for stats.mstats.argstoarray() docstring. * `#11986 `__: Avoid bugs in ndimage when the output and input arrays overlap... * `#11988 `__: ENH: Override fit method of Laplace distribution with Maximum... * `#11993 `__: TST, CI: Azure Windows path fixups * `#11995 `__: MAINT, CI: remove custom mingw Azure * `#11996 `__: DOC: add Examples and fix pep warning for fft.set_global_backend... * `#11997 `__: MAINT, CI: Azure OpenBLAS simplify * `#11998 `__: BENCH: Run against current HEAD instead of master * `#12001 `__: ENH: stats: Implement _logpdf for the maxwell distribution. * `#12004 `__: DOC: add examples for integrate.quad_vec() and integrate.quad_explain() * `#12005 `__: MAINT: Use helper functions in ?tbtrs tests * `#12007 `__: MAINT: updated LICENSES_bundled for pybind11 and six * `#12008 `__: DOC: roadmap update * `#12009 `__: ENH: optimize: support 64-bit BLAS in lbfgsb * `#12010 `__: ENH: sparse.linalg: support 64-bit BLAS in isolve * `#12012 `__: DOC: add Examples for interpolate.barycentric_interpolate(),... * `#12013 `__: MAINT: remove last uses of numpy.dual * `#12014 `__: CI: print 10 slowest tests * `#12020 `__: MAINT: Removed handling of circular input in SphericalVoronoi * `#12022 `__: DOC : added default value of absolute_sigma to False in scipy.optimize.curve_fit docs * `#12024 `__: DOC: add Examples for io.hb_read() and io.hb_write() * `#12025 `__: MAINT: Remove numpy/npy_3kcompat.h from nd_image * `#12028 `__: Spelling correction * `#12030 `__: ENH: optimize/_trlib: support ILP64 blas/lapack * `#12036 `__: MAINT: Add some generated C files .gitignore * `#12038 `__: MAINT, CI: Travis rackcdn->conda.org * `#12039 `__: MAINT: signal: Lower the resolution of the plots in the chirp... * `#12040 `__: DOC: add Examples for ndimage.spline_filter1d() and spline_filter()... * `#12044 `__: MAINT: combine apt-get update and apt-get install into one RUN * `#12045 `__: TST: Reduce size of test_diagonal_types to speed up tests * `#12046 `__: MAINT: Remove unused npy_3kcompat.h * `#12047 `__: MAINT: Cython 3.0 compat * `#12050 `__: DOC: add download number badges of PyPI and conda-forge in README.rst * `#12052 `__: DOC: add Examples odr.models.polynomial() and fix odr.odr docstring... * `#12056 `__: ENH: Modifies shapiro to return a named tuple * `#12057 `__: Adding my name into THANKS.txt * `#12060 `__: TST: Reduce number of test_diagonal_types configs * `#12062 `__: TST: Change dec.slow to pytest.mark.slow * `#12068 `__: ENH: Modifies jarque_bera to return a named tuple * `#12070 `__: MAINT, CI: appveyor rack->conda.org * `#12072 `__: TST: filter out factorial(float) deprecation warning * `#12078 `__: TST: Skip test on colab with large memory alloc * `#12079 `__: DOC: Remove Python2 reference from stats tutorial * `#12081 `__: DOC: add Examples docstring for optimize.show_options() * `#12084 `__: BUG: interpolate: fix BarycentricInterpolator with integer input... * `#12089 `__: ENH: spatial/qhull: support ILP64 Lapack * `#12090 `__: ENH: integrate: support ILP64 BLAS in odeint/vode/lsoda * `#12091 `__: ENH: integrate: support ILP64 in quadpack * `#12092 `__: BUG: Fix dropping dt in signal.StateSpace * `#12093 `__: MAINT: Rollback python2.6 workaround * `#12094 `__: MAINT: \`openblas_support\` hash checks * `#12095 `__: MAINT: ndimage: change \`shares_memory\` to \`may_share_memory\` * `#12098 `__: Doc: change 4 model instances of odr to be instances of \`Model\`... * `#12101 `__: Removed more unused imports and assignments. * `#12107 `__: ENH: Area calculation for 2D inputs in SphericalVoronoi * `#12108 `__: MAINT: ensure attributes have correct data type in \`SphericalVoronoi\` * `#12109 `__: degree is not order in splines * `#12110 `__: ENH: More helpful/forgiving io.wavfile errors * `#12117 `__: BUG: fix newline * `#12123 `__: [MAINT] Fix error on PyData/Sparse import. * `#12124 `__: TST: Always test matmul now that Python3.5+ is required * `#12126 `__: TST: Cleanup unused matplotlib code. * `#12127 `__: DOC: update docstrings of signal.cspline2d, qspline2d, sepfir2d * `#12130 `__: MAINT: Fixing broken links with linkchecker * `#12135 `__: ENH: linalg: Add the function convolution_matrix. * `#12136 `__: MAINT: Cleanup np.poly1d hack * `#12137 `__: TST, CI: reproduce wheels 32-bit setup * `#12140 `__: TST: stats: add kstwo, ksone to slow tests. * `#12141 `__: Support 64-bit integer size in Fitpack * `#12151 `__: DOC: Correct Rosenbrock function sum * `#12159 `__: BUG: Fix length calculation in upfirdn * `#12160 `__: BUG: Fix M_PI * `#12168 `__: DOC: add an obsolete version checking javascript to doc release... * `#12171 `__: CI, MAINT: Azure OpenBLAS drive flip * `#12172 `__: ENH: Bounds for the Powell minimization method * `#12175 `__: BLD: support more Fortran compilers for ilp64 and macro expansion... * `#12179 `__: BUG: stats: A few distributions didn't accept lists as arguments. * `#12180 `__: MAINT: removed redundant import in SphericalVoronoi tests * `#12181 `__: DOC: for versionwarning don't use $.getScript * `#12182 `__: MAINT: random sampling on the hypersphere in SphericalVoronoi... * `#12194 `__: MAINT: Module and example cleanups for doc build * `#12202 `__: ENH: tool to DL release wheels from Anaconda * `#12210 `__: Remove py.typed marker (at least for the release) * `#12217 `__: BUG: stats: Fix handling of edge cases in median_abs_deviation. * `#12223 `__: BUG: stats: wilcoxon returned p > 1 for certain inputs. * `#12227 `__: BLD: Set macos min version when building rectangular_lsap * `#12229 `__: MAINT: tools/gh_lists.py: fix http header case sensitivity issue * `#12236 `__: DOC: Fix a couple grammatical mistakes in 1.5.0-notes.rst. * `#12276 `__: TST: skip `test_heequb`, it fails intermittently. * `#12285 `__: CI: split travis arm64 run into two * `#12317 `__: BUG: prevent error accumulation in `Rotation` multiplication * `#12318 `__: BUG: sparse: avoid np.prod overflow in check_shape * `#12319 `__: BUG: Make cobyla threadsafe * `#12335 `__: MAINT: Work around Sphinx bug Checksums ========= MD5 ~~~ 6b67c3cdb5fd7ec7f65445ce5432c2d3 scipy-1.5.0-cp36-cp36m-macosx_10_9_x86_64.whl cb1c6b8022891ef2644caf26f6d6d0f2 scipy-1.5.0-cp36-cp36m-manylinux1_i686.whl 28a26064ae38b16c370be9691d0be2de scipy-1.5.0-cp36-cp36m-manylinux1_x86_64.whl 1a8324e7940ab7c405e534823a33872f scipy-1.5.0-cp36-cp36m-win32.whl 241c63762ae6e903b06c2498f5fef5d9 scipy-1.5.0-cp36-cp36m-win_amd64.whl c9642dfdc834dfc73b83fce7a05c6101 scipy-1.5.0-cp37-cp37m-macosx_10_9_x86_64.whl 30ec965fac402610192ff67428848f74 scipy-1.5.0-cp37-cp37m-manylinux1_i686.whl 46c7068c7cf789777ec4423b2ff83f5f scipy-1.5.0-cp37-cp37m-manylinux1_x86_64.whl 21a5d8636489c065ce84fcba238c0c32 scipy-1.5.0-cp37-cp37m-win32.whl cd0429315d501470b5bb732d23fddf9d scipy-1.5.0-cp37-cp37m-win_amd64.whl 99a35969fdd5329436f679e02c23f185 scipy-1.5.0-cp38-cp38-macosx_10_9_x86_64.whl 721abc2147746de50e639832c54d1c0a scipy-1.5.0-cp38-cp38-manylinux1_i686.whl c51a2faadfda7bc56e1492218f9d044c scipy-1.5.0-cp38-cp38-manylinux1_x86_64.whl 8f70224a6b8fb8e55cff52c83df30663 scipy-1.5.0-cp38-cp38-win32.whl 8e0c33036795485d14c6221d00cacb9e scipy-1.5.0-cp38-cp38-win_amd64.whl 4b0fc5a2eae9764c302187af4fad975f scipy-1.5.0.tar.gz 4157e49b7a0ba3c74b9df6df90d43245 scipy-1.5.0.tar.xz a14f9de5ed51eb23c8dfa739ec4f50ff scipy-1.5.0.zip SHA256 ~~~~~~ 8f354e92246de33c44ddfc5fef61bce8c19d5aeeb2130b6a672b15db619453e4 scipy-1.5.0-cp36-cp36m-macosx_10_9_x86_64.whl 244b4a23a8cb6707e19f5579502112954659bb983852b1c381243fe46d9b6818 scipy-1.5.0-cp36-cp36m-manylinux1_i686.whl d266d955c3fd12336c948abb368de230bf8dc20efad428abb908165d9c87f53f scipy-1.5.0-cp36-cp36m-manylinux1_x86_64.whl 11d8bfcea08e971968d07495bdf1de37b3b1bb5ca78e4ddbe8d60791f0456942 scipy-1.5.0-cp36-cp36m-win32.whl eb48915142f2dbd4b84df8ca66e433946df1a13eff36015c2b7843aa39dbc30d scipy-1.5.0-cp36-cp36m-win_amd64.whl ae24f16056c87e7f086a56a7aaf6e65e4626ac70b7e08d7f54e078693abcf778 scipy-1.5.0-cp37-cp37m-macosx_10_9_x86_64.whl 1b23129e9838694c36475b296ac251ae0b0247455352f2bed0b246c30b61c822 scipy-1.5.0-cp37-cp37m-manylinux1_i686.whl 69eb6245ff472db406c3e9b3e13bd0dc6e2ff48e7e758a7bfca296ecdb1ae8b9 scipy-1.5.0-cp37-cp37m-manylinux1_x86_64.whl 38cdb4eafe727b324f295ab69eaa0788a8eefe08d59360968928753ab7f68ba9 scipy-1.5.0-cp37-cp37m-win32.whl f662ad49ef930325161bd5edac39932c3f1b55547eaa0afce08367522f6314df scipy-1.5.0-cp37-cp37m-win_amd64.whl 40969696eb13c2f1b6fc8e99ce597a47627f0167a7feb6086c2ccdfb55835cfc scipy-1.5.0-cp38-cp38-macosx_10_9_x86_64.whl 0f62f3be924a4314cf2384c6f77d3a0e3bf4ada370530a7d0a6d5a61192bec9e scipy-1.5.0-cp38-cp38-manylinux1_i686.whl 4e1a790fdf82a67619a38f017105df4bb66dfcdaea45df793ece27fd534720c2 scipy-1.5.0-cp38-cp38-manylinux1_x86_64.whl 2e99f50d0061c385f8f46c5a99bb07ad013ec2dcf95ccba3be4e081594e7ab19 scipy-1.5.0-cp38-cp38-win32.whl 2aec0f81a29440e0c000222ac0447748a840d328b5698dd900ece4113bca5cde scipy-1.5.0-cp38-cp38-win_amd64.whl 4ff72877d19b295ee7f7727615ea8238f2d59159df0bdd98f91754be4a2767f0 scipy-1.5.0.tar.gz 23baeaa18803d12d1abdff3f5c148b1085c2dc4028c6b8efce652dde2119b41c scipy-1.5.0.tar.xz 92b17f65c2521a48e1853cbc6b1038140f38393ce6293bbdba6e99a7653d8063 scipy-1.5.0.zip -------------- next part -------------- An HTML attachment was scrubbed... URL: From evgeny.burovskiy at gmail.com Sun Jun 21 15:27:00 2020 From: evgeny.burovskiy at gmail.com (Evgeni Burovski) Date: Sun, 21 Jun 2020 22:27:00 +0300 Subject: [SciPy-Dev] ANN: SciPy 1.5.0 In-Reply-To: References: Message-ID: Thanks for managing it Tyler ??, 21 ???. 2020 ?., 22:21 Tyler Reddy : > Hi all, > > On behalf of the SciPy development team I'm pleased to announce > the release of SciPy 1.5.0. > > Sources and binary wheels can be found at: > https://pypi.org/project/scipy/ > and at: > https://github.com/scipy/scipy/releases/tag/v1.5.0 > > One of a few ways to install this release with pip: > > pip install scipy==1.5.0 > > ========================== > SciPy 1.5.0 Release Notes > ========================== > > SciPy 1.5.0 is the culmination of 6 months of hard work. It contains > many new features, numerous bug-fixes, improved test coverage and better > documentation. There have been a number of deprecations and API changes > in this release, which are documented below. All users are encouraged to > upgrade to this release, as there are a large number of bug-fixes and > optimizations. Before upgrading, we recommend that users check that > their own code does not use deprecated SciPy functionality (to do so, > run your code with ``python -Wd`` and check for ``DeprecationWarning`` s). > Our development attention will now shift to bug-fix releases on the > 1.5.x branch, and on adding new features on the master branch. > > This release requires Python 3.6+ and NumPy 1.14.5 or greater. > > For running on PyPy, PyPy3 6.0+ and NumPy 1.15.0 are required. > > Highlights of this release > ---------------------------------- > > - wrappers for more than a dozen new ``LAPACK`` routines are now available > in `scipy.linalg.lapack` > - Improved support for leveraging 64-bit integer size from linear algebra > backends > - addition of the probability distribution for two-sided one-sample > Kolmogorov-Smirnov tests > > > New features > ============ > > `scipy.cluster` improvements > --------------------------------------- > Initialization of `scipy.cluster.vq.kmeans2` using ``minit="++"`` had a > quadratic complexity in the number of samples. It has been improved, > resulting > in a much faster initialization with quasi-linear complexity. > > `scipy.cluster.hierarchy.dendrogram` now respects the ``matplotlib`` color > palette > > `scipy.fft` improvements > ---------------------------------- > A new keyword-only argument ``plan`` is added to all FFT functions in this > module. It is reserved for passing in a precomputed plan from libraries > providing a FFT backend (such as ``PyFFTW`` and ``mkl-fft``), and it is > currently not used in SciPy. > > `scipy.io` improvements > --------------------------------- > `scipy.io.wavfile` error messages are more explicit about what's wrong, > and > extraneous bytes at the ends of files are ignored instead of raising an > error > when the data has successfully been read. > > `scipy.io.loadmat` gained a ``simplify_cells`` parameter, which if set to > ``True`` simplifies the structure of the return value if the ``.mat`` file > contains cell arrays. > > ``pathlib.Path`` objects are now supported in `scipy.io` Matrix Market I/O > functions > > `scipy.linalg` improvements > -------------------------------------- > `scipy.linalg.eigh` has been improved. Now various ``LAPACK`` drivers can > be > selected at will and also subsets of eigenvalues can be requested via > ``subset_by_value`` keyword. Another keyword ``subset_by_index`` is > introduced. > Keywords ``turbo`` and ``eigvals`` are deprecated. > > Similarly, standard and generalized Hermitian eigenvalue ``LAPACK`` > routines > ``?evx`` are added and existing ones now have full ``_lwork`` > counterparts. > > Wrappers for the following ``LAPACK`` routines have been added to > `scipy.linalg.lapack`: > > - ``?getc2``: computes the LU factorization of a general matrix with > complete > pivoting > - ``?gesc2``: solves a linear system given an LU factorization from > ``?getc2`` > - ``?gejsv``: computes the singular value decomposition of a general > matrix > with higher accuracy calculation of tiny singular values and their > corresponding singular vectors > - ``?geqrfp``: computes the QR factorization of a general matrix with > non-negative elements on the diagonal of R > - ``?gtsvx``: solves a linear system with general tridiagonal matrix > - ``?gttrf``: computes the LU factorization of a tridiagonal matrix > - ``?gttrs``: solves a linear system given an LU factorization from > ``?gttrf`` > - ``?ptsvx``: solves a linear system with symmetric positive definite > tridiagonal matrix > - ``?pttrf``: computes the LU factorization of a symmetric positive > definite > tridiagonal matrix > - ``?pttrs``: solves a linear system given an LU factorization from > ``?pttrf`` > - ``?pteqr``: computes the eigenvectors and eigenvalues of a positive > definite > tridiagonal matrix > - ``?tbtrs``: solves a linear system with a triangular banded matrix > - ``?csd``: computes the Cosine Sine decomposition of an > orthogonal/unitary > matrix > > Generalized QR factorization routines (``?geqrf``) now have full > ``_lwork`` > counterparts. > > `scipy.linalg.cossin` Cosine Sine decomposition of unitary matrices has > been > added. > > The function `scipy.linalg.khatri_rao`, which computes the Khatri-Rao > product, > was added. > > The new function `scipy.linalg.convolution_matrix` constructs the Toeplitz > matrix representing one-dimensional convolution. > > `scipy.optimize` improvements > ----------------------------------------- > The finite difference numerical differentiation used in various > ``minimize`` > methods that use gradients has several new features: > > - 2-point, 3-point, or complex step finite differences can be used. > Previously > only a 2-step finite difference was available. > - There is now the possibility to use a relative step size, previously > only an > absolute step size was available. > - If the ``minimize`` method uses bounds the numerical differentiation > strictly > obeys those limits. > - The numerical differentiation machinery now makes use of a simple > cache, > which in some cases can reduce the number of function evaluations. > - ``minimize``'s ``method= 'powell'`` now supports simple bound > constraints > > There have been several improvements to `scipy.optimize.linprog`: > > - The ``linprog`` benchmark suite has been expanded considerably. > - ``linprog``'s dense pivot-based redundancy removal routine and sparse > presolve are faster > - When ``scikit-sparse`` is available, solving sparse problems with > ``method='interior-point'`` is faster > > The caching of values when optimizing a function returning both value and > gradient together has been improved, avoiding repeated function > evaluations > when using a ``HessianApproximation`` such as ``BFGS``. > > ``differential_evolution`` can now use the modern ``np.random.Generator`` > as > well as the legacy ``np.random.RandomState`` as a seed. > > `scipy.signal` improvements > -------------------------------------- > A new optional argument ``include_nyquist`` is added to ``freqz`` > functions in > this module. It is used for including the last frequency (Nyquist > frequency). > > `scipy.signal.find_peaks_cwt` now accepts a ``window_size`` parameter for > the > size of the window used to calculate the noise floor. > > `scipy.sparse` improvements > ---------------------------------------- > Outer indexing is now faster when using a 2d column vector to select > column > indices. > > `scipy.sparse.lil.tocsr` is faster > > Fixed/improved comparisons between pydata sparse arrays and sparse matrices > > BSR format sparse multiplication performance has been improved. > > `scipy.sparse.linalg.LinearOperator` has gained the new ``ndim`` class > attribute > > `scipy.spatial` improvements > --------------------------------------- > `scipy.spatial.geometric_slerp` has been added to enable geometric > spherical linear interpolation on an n-sphere > > `scipy.spatial.SphericalVoronoi` now supports calculation of region areas > in 2D > and 3D cases > > The tree building algorithm used by ``cKDTree`` has improved from quadratic > worst case time complexity to loglinear. Benchmarks are also now available > for > building and querying of balanced/unbalanced kd-trees. > > `scipy.special` improvements > ---------------------------------------- > The following functions now have Cython interfaces in `cython_special`: > > - `scipy.special.erfinv` > - `scipy.special.erfcinv` > - `scipy.special.spherical_jn` > - `scipy.special.spherical_yn` > - `scipy.special.spherical_in` > - `scipy.special.spherical_kn` > > `scipy.special.log_softmax` has been added to calculate the logarithm of > softmax > function. It provides better accuracy than > ``log(scipy.special.softmax(x))`` for > inputs that make softmax saturate. > > `scipy.stats` improvements > ------------------------------------ > The function for generating random samples in `scipy.stats.dlaplace` has > been > improved. The new function is approximately twice as fast with a memory > footprint reduction between 25 % and 60 % (see gh-11069). > > `scipy.stats` functions that accept a seed for reproducible calculations > using > random number generation (e.g. random variates from distributions) can now > use > the modern ``np.random.Generator`` as well as the legacy > ``np.random.RandomState`` as a seed. > > The ``axis`` parameter was added to `scipy.stats.rankdata`. This allows > slices > of an array along the given axis to be ranked independently. > > The ``axis`` parameter was added to `scipy.stats.f_oneway`, allowing it to > compute multiple one-way ANOVA tests for data stored in n-dimensional > arrays. The performance of ``f_oneway`` was also improved for some cases. > > The PDF and CDF methods for ``stats.geninvgauss`` are now significantly > faster > as the numerical integration to calculate the CDF uses a Cython based > ``LowLevelCallable``. > > Moments of the normal distribution (`scipy.stats.norm`) are now calculated > using > analytical formulas instead of numerical integration for greater speed and > accuracy > > Moments and entropy trapezoidal distribution (`scipy.stats.trapz`) are now > calculated using analytical formulas instead of numerical integration for > greater speed and accuracy > > Methods of the truncated normal distribution (`scipy.stats.truncnorm`), > especially ``_rvs``, are significantly faster after a complete rewrite. > > The `fit` method of the Laplace distribution, `scipy.stats.laplace`, now > uses > the analytical formulas for the maximum likelihood estimates of the > parameters. > > Generation of random variates is now thread safe for all SciPy > distributions. > 3rd-party distributions may need to modify the signature of the ``_rvs()`` > method to conform to ``_rvs(self, ..., size=None, random_state=None)``. (A > one-time VisibleDeprecationWarning is emitted when using non-conformant > distributions.) > > The Kolmogorov-Smirnov two-sided test statistic distribution > (`scipy.stats.kstwo`) was added. Calculates the distribution of the K-S > two-sided statistic ``D_n`` for a sample of size n, using a mixture of > exact > and asymptotic algorithms. > > The new function ``median_abs_deviation`` replaces the deprecated > ``median_absolute_deviation``. > > The ``wilcoxon`` function now computes the p-value for Wilcoxon's signed > rank > test using the exact distribution for inputs up to length 25. The > function has > a new ``mode`` parameter to specify how the p-value is to be computed. > The > default is ``"auto"``, which uses the exact distribution for inputs up to > length > 25 and the normal approximation for larger inputs. > > Added a new Cython-based implementation to evaluate guassian kernel > estimates, > which should improve the performance of ``gaussian_kde`` > > The ``winsorize`` function now has a ``nan_policy`` argument for refined > handling of ``nan`` input values. > > The ``binned_statistic_dd`` function with ``statistic="std"`` performance > was > improved by ~4x. > > ``scipy.stats.kstest(rvs, cdf,...)`` now handles both one-sample and > two-sample testing. The one-sample variation uses `scipy.stats.ksone` > (or `scipy.stats.kstwo` with back off to `scipy.stats.kstwobign`) to > calculate > the p-value. The two-sample variation, invoked if ``cdf`` is array_like, > uses > an algorithm described by Hodges to compute the probability directly, only > backing off to `scipy.stats.kstwo` in case of overflow. The result in both > cases is more accurate p-values, especially for two-sample testing with > smaller (or quite different) sizes. > > `scipy.stats.maxwell` performance improvements include a 20 % speed up for > `fit()`` and 5 % for ``pdf()`` > > `scipy.stats.shapiro` and `scipy.stats.jarque_bera` now return a named > tuple > for greater consistency with other ``stats`` functions > > Deprecated features > ================ > > `scipy` deprecations > ---------------------------- > > `scipy.special` changes > -------------------------------- > The ``bdtr``, ``bdtrc``, and ``bdtri`` functions are deprecating > non-negative > non-integral ``n`` arguments. > > `scipy.stats` changes > ----------------------------- > The function ``median_absolute_deviation`` is deprecated. Use > ``median_abs_deviation`` instead. > > The use of the string ``"raw"`` with the ``scale`` parameter of ``iqr`` is > deprecated. Use ``scale=1`` instead. > > Backwards incompatible changes > ========================== > > `scipy.interpolate` changes > ------------------------------------- > > `scipy.linalg` changes > ------------------------------ > The output signatures of ``?syevr``, ``?heevr`` have been changed from > ``w, v, info`` to ``w, v, m, isuppz, info`` > > The order of output arguments ``w``, ``v`` of ``{gv, gvd, gvx}`` is > swapped. > > `scipy.signal` changes > ------------------------------- > The output length of `scipy.signal.upfirdn` has been corrected, resulting > outputs may now be shorter for some combinations of up/down ratios and > input > signal and filter lengths. > > `scipy.signal.resample` now supports a ``domain`` keyword argument for > specification of time or frequency domain input. > > Other changes > ============= > Improved support for leveraging 64-bit integer size from linear algebra > backends > in several parts of the SciPy codebase. > > Shims designed to ensure the compatibility of SciPy with Python 2.7 have > now > been removed. > > Many warnings due to unused imports and unused assignments have been > addressed. > > Many usage examples were added to function docstrings, and many input > validations and intuitive exception messages have been added throughout the > codebase. > > Early stage adoption of type annotations in a few parts of the codebase > > > Authors > ======= > > * @endolith > * Hameer Abbasi > * ADmitri + > * Wesley Alves + > * Berkay Antmen + > * Sylwester Arabas + > * Arne K?derle + > * Christoph Baumgarten > * Peter Bell > * Felix Berkenkamp > * Jord?o Bragantini + > * Clemens Brunner + > * Evgeni Burovski > * Matthias Bussonnier + > * CJ Carey > * Derrick Chambers + > * Leander Claes + > * Christian Clauss > * Luigi F. Cruz + > * dankleeman > * Andras Deak > * Milad Sadeghi DM + > * jeremie du boisberranger + > * Stefan Endres > * Malte Esders + > * Leo Fang + > * felixhekhorn + > * Isuru Fernando > * Andrew Fowlie > * Lakshay Garg + > * Gaurav Gijare + > * Ralf Gommers > * Emmanuelle Gouillart + > * Kevin Green + > * Martin Grignard + > * Maja Gwozdz > * Sturla Molden > * gyu-don + > * Matt Haberland > * hakeemo + > * Charles Harris > * Alex Henrie > * Santi Hernandez + > * William Hickman + > * Till Hoffmann + > * Joseph T. Iosue + > * Anany Shrey Jain > * Jakob Jakobson > * Charles Jekel + > * Julien Jerphanion + > * Jiacheng-Liu + > * Christoph Kecht + > * Paul Kienzle + > * Reidar Kind + > * Dmitry E. Kislov + > * Konrad + > * Konrad0 > * Takuya KOUMURA + > * Krzysztof Pi?ro > * Peter Mahler Larsen > * Eric Larson > * Antony Lee > * Gregory Lee + > * Gregory R. Lee > * Chelsea Liu > * Cong Ma + > * Kevin Mader + > * Maja Gw??d? + > * Alex Marvin + > * Matthias K?mmerer > * Nikolay Mayorov > * Mazay0 + > * G. D. McBain > * Nicholas McKibben + > * Sabrina J. Mielke + > * Sebastian J. Mielke + > * Milo? Komar?evi? + > * Shubham Mishra + > * Santiago M. Mola + > * Grzegorz Mrukwa + > * Peyton Murray > * Andrew Nelson > * Nico Schl?mer > * nwjenkins + > * odidev + > * Sambit Panda > * Vikas Pandey + > * Rick Paris + > * Harshal Prakash Patankar + > * Balint Pato + > * Matti Picus > * Ilhan Polat > * poom + > * Siddhesh Poyarekar > * Vladyslav Rachek + > * Bharat Raghunathan > * Manu Rajput + > * Tyler Reddy > * Andrew Reed + > * Lucas Roberts > * Ariel Rokem > * Heshy Roskes > * Matt Ruffalo > * Atsushi Sakai + > * Benjamin Santos + > * Christoph Schock + > * Lisa Schwetlick + > * Chris Simpson + > * Leo Singer > * Kai Striega > * S?ren Fuglede J?rgensen > * Kale-ab Tessera + > * Seth Troisi + > * Robert Uhl + > * Paul van Mulbregt > * Vasiliy + > * Isaac Virshup + > * Pauli Virtanen > * Shakthi Visagan + > * Jan Vleeshouwers + > * Sam Wallan + > * Lijun Wang + > * Warren Weckesser > * Richard Weiss + > * wenhui-prudencemed + > * Eric Wieser > * Josh Wilson > * James Wright + > * Ruslan Yevdokymov + > * Ziyao Zhang + > > A total of 129 people contributed to this release. > People with a "+" by their names contributed a patch for the first time. > This list of names is automatically generated, and may not be fully > complete. > > Issues closed for 1.5.0 > ------------------------------- > > * `#1455 `__: ellipord does > returns bogus values if gstop or gpass are negative... > * `#1968 `__: correlate2d's > output does not agree with correlate's output in... > * `#2744 `__: BUG: optimize: > '\*\*kw' argument of 'newton_krylov' is not documented > * `#4755 `__: TypeError: data > type " * `#4921 `__: scipy.optimize > maxiter option not working as expected > * `#5144 `__: RuntimeWarning > on csgraph.shortest_path when edge lengths are... > * `#5309 `__: Documentation > of 'hybr' and 'lm' inconsistent in optimize.root > * `#6026 `__: Replace > approx_grad with _numdiff.approx_derivative in scipy.optimize > * `#6502 `__: Computing > Eigenvalues in an Interval with LAPACK > * `#7058 `__: Errors in > special.bdtri and special.bdtr for non-integer k values > * `#7700 `__: SuperLU does > not respect perm_c="NATURAL" > * `#7895 `__: Improvements to > io.loadmat > * `#8205 `__: ValueError in > scipy.linalg.eigvalsh for large matrix > * `#8278 `__: Memory limit > for scipy.sparse.linalg.spsolve with scikit-umfpack > * `#8327 `__: > scipy.stats.mstats.winsorize NaN handling > * `#8341 `__: > scipy.stats.ks_2samp for masked and unmasked data give different... > * `#8748 `__: > scipy.stats.kstest for same distribution: p-values nonuniform > * `#9042 `__: optimize: > Incorrect statement about \`jac\` in the \`minimize\`... > * `#9197 `__: problem with > scipy.signal.butter with 1000+ points array > * `#9212 `__: EIGH very very > slow --> suggesting an easy fix > * `#9553 `__: ndimage > routines behave badly when output has memory overlap... > * `#9632 `__: > ndimage.maximum_filter undocumented behaviour using footprint... > * `#9658 `__: > `scipy.optimize.minimize(method='COBYLA')` not threadsafe > * `#9710 `__: > stats.weightedtau([1], [1.0]) SEGFAULTs > * `#9797 `__: Master Tracker > for some Kolmogorov-Smirnov test Issues > * `#9844 `__: > scipy.signal.upfirdn gives different length matrix versus MATLAB... > * `#9872 `__: > scipy.signal.convolve is slower when vectorized > * `#9913 `__: BUG: No dt in > StateSpace operations > * `#10014 `__: Distribution > names \`weibull_min\`and \`weibull_max\` should... > * `#10159 `__: BUG: stats: > chisquare returns incorrect results for arrays of... > * `#10302 `__: scipy.fft: > Add a \`plan\` argument > * `#10332 `__: 'Incomplete > wav chunk' inconsistent/reason unknown > * `#10441 `__: Remove uses > of \`numpy.dual\`? > * `#10558 `__: Document > implicit sum in csr_matrix() constructor > * `#10788 `__: LU with full > pivoting > * `#10841 `__: Unexpected > behavior in linalg.blas.dtrmm wrapper > * `#10919 `__: > optimize._lbfgsb setulb() function violates parameter bounds > * `#10963 `__: kstest, > ks_2samp: confusing \`mode\` argument descriptions > * `#11022 `__: Unexpected > Result in factorial function with NaN input > * `#11028 `__: Documentation > error in optimize.minimize > * `#11058 `__: Adding > logsoftmax function > * `#11076 `__: ValueError: > Unknown wave file format > * `#11090 `__: Misconception > of the median absolute deviation in stats? > * `#11095 `__: BUG: > find_peaks_cwt test failures in 32-bit Linux wheels > * `#11107 `__: > scipy.io.mmread generated an error "TypeError: startswith first... > * `#11123 `__: Add wrapper > for ?gttrf/?gttrs > * `#11128 `__: OverflowError > in resample_poly (upfirdn) > * `#11132 `__: Possible bug: > rv_discret.ppf for percentiles 0 and 100 and loc... > * `#11163 `__: Comparisons > between scipy spmatrix and can sparse.SparseArray... > * `#11168 `__: Generalized > Pareto variance inaccurate for concentrations near... > * `#11169 `__: Add wrapper > for ?geqrfp > * `#11184 `__: 2-sided > Kolmogorov Smirnov returns p-value of 1 > * `#11185 `__: The .roots() > or solve() function of scipy.interpolate.CubicHermiteSpline... > * `#11190 `__: Add wrapper > for ?tbtrs > * `#11200 `__: Can no longer > slice csr_matrix in 1.3.0 > * `#11207 `__: > _minimize_scalar_bounded: reference before assignment > * `#11216 `__: linprog: > interior-point: Cholmod reordering can be reused > * `#11223 `__: Add wrappers > for ?pttrf, ?pttrs > * `#11224 `__: Add > wrapperfor ?pteqr > * `#11235 `__: MAINT: > Missleading Error Message for IIR Filter > * `#11244 `__: Missing > reference in \`scipy.optimize.line_search\` > * `#11262 `__: Hermitian > Eigenvalue Problem eigh() API and wrapper change proposal > * `#11266 `__: Sparse matrix > constructor data type detection changes on Numpy... > * `#11270 `__: CI failing: > Travis CI Py36 refguide and Linux_Python_36_32bit_full... > * `#11279 `__: linalg.eigh > checks whole array for finite values > * `#11295 `__: CI: azure > does not auto-cancel old jobs on pushes > * `#11299 `__: > stats.truncnorm.rvs 100x slower in v1.4.x than v1.3.3 > * `#11315 `__: BUG: special: > rgamma on negative integers smaller -34 > * `#11319 `__: Missing > \`int64_t\` declaration in rectangular_lsap.cpp > * `#11323 `__: Compilation > failure due to missing symbol pthread_atfork > * `#11332 `__: BUG: > directed_hausdorff distance on sets u and v when u is a... > * `#11350 `__: Khatri-Rao > product > * `#11354 `__: ENH: Add > wrapper for ?gejsv > * `#11361 `__: Dropped NaN > in eval_genlaguerre function > * `#11363 `__: Dropped NaN > in hyperu function > * `#11365 `__: > scipy.stats.binned_statistic regressed in v1.4.0 > * `#11369 `__: Dropped NaN > in eval_hermite > * `#11370 `__: Dropped NaN > in eval_gegenbauer > * `#11373 `__: Add wrapper > for ?gtsvx > * `#11374 `__: Add wrapper > for ?ptsvx > * `#11391 `__: > csgraph.minimum_spanning_tree loses precision > * `#11398 `__: Update stats > to cope with \`np.random.Generator\` machinery > * `#11412 `__: Array copying > causes unwanted type casting from complex to float... > * `#11415 `__: Where is the > Wiener Filter derived from? > * `#11416 `__: > _lib._util.getargspec_no_self is missing KEYWORD_ONLY support > * `#11428 `__: Documentation > on SHGO inequality constraints appears contradictory > * `#11429 `__: Add LAPACK's > ZUNCSD cosine sine decomposition > * `#11438 `__: > run_dualannealing passes bounds incorrectly in benchmarks/optimize.py > * `#11441 `__: Can't run > optimize benchmarks > * `#11442 `__: Chebyshev > weights > * `#11448 `__: Wrongly typed > comparison in integrate.quad > * `#11458 `__: BUG: > maximum_bipartite_matching produces infeasible solution > * `#11460 `__: CI failing: 2 > Travis CI tests fail with numpy build or version... > * `#11462 `__: Bug on "++" > initialization on "kmeans2" > * `#11464 `__: Shouldn't > data type of KDE evaluation should be like in the input... > * `#11468 `__: performance > of binned_statistics_2d 100x slowdown from 1.3.2... > * `#11484 `__: Callback > function doesn't give the same value as the one being... > * `#11492 `__: Confusing > dendrogram labelling > * `#11493 `__: > scipy.optimize.least_squares fails if the return array of the... > * `#11494 `__: Error > performing kronecker product between large sparse vectors > * `#11503 `__: medfilt > produces 0 on input of length 1 > * `#11529 `__: Pyflakes > generates almost 700 warnings. > * `#11566 `__: > irfft/irfft2/irfftn docs are slightly confusing re: input type. > * `#11572 `__: > least_squares: too small tolerances not catched with method='lm' > * `#11581 `__: DOC: > scipy.interpolate.RectSphereBivariateSpline > * `#11586 `__: Differential > evolution breaks with LinearConstraints with sparse... > * `#11595 `__: > scipy.spatial.cKDTree construction slow for some datasets > * `#11598 `__: output of > special.voigt_profile when sigma=0 > * `#11601 `__: linalg tests > failing in runtests.py > * `#11602 `__: > scipy.optimize.linear_sum_assignment returns reverse diagonal... > * `#11610 `__: Analytic > formula for normal moments > * `#11611 `__: Build failure > with gfortran 10 > * `#11613 `__: TST, MAINT: > test_quadpack TestCtypesQuad wasn't fully migrated... > * `#11630 `__: > SmoothBivariateSpline bbox parameter > * `#11635 `__: typo in > docstring of scipy.stats.norminvgauss > * `#11637 `__: BUG: core > dumps when calling scipy.interpolate.interp1d with... > * `#11638 `__: better > documentation for 'return_all' option in minimize(Nelder... > * `#11652 `__: TST, MAINT: > CI failures for pre-release NumPy wheels > * `#11659 `__: > optimize.fmin_l_bfgs_b needs bound check and appropiate error... > * `#11660 `__: BUG/ENH: > distribution.ncf with nc=0 returns nan > * `#11661 `__: > scipy.ndimage.convolve1d and correlate1d don't behave properly... > * `#11669 `__: p-value > varies with the order of the data > * `#11676 `__: documentation > of scipy.spatial.HalfspaceIntersection: wrong method... > * `#11685 `__: Rotation > cannot be expressed as matrix > * `#11686 `__: MAINT: mypy > imports of Cython "modules" > * `#11693 `__: > TestDifferentialEvolutionSolver::test_L4 failing in CI > * `#11696 `__: DOC: > incorrect compiler information for macOS in docs > * `#11709 `__: eigh() tests > fail to pass, crash Python with seemingly ramdom... > * `#11763 `__: Small error > in gamma continuous rv fit comments > * `#11769 `__: truncnorm.rvs > Weird Behaviors > * `#11770 `__: crash in > TestEigh::test_value_subsets > * `#11795 `__: trapz > distribution mean computed using single precision > * `#11800 `__: Segmentation > fault in scipy.odr for multidimensional independent... > * `#11811 `__: pyflakes > silently failing on travis-ci > * `#11826 `__: Error with > _fblas > * `#11827 `__: > \`fft.tests.test_numpy.test_multiprocess\` hangs on Python3.8... > * `#11835 `__: tests with > \`multiprocessing\` hang on Python 3.8 on macOS > * `#11839 `__: linalg.expm > returns nans with RuntimeWarning: overflow encountered... > * `#11856 `__: Documentation > of fit methods for \`weibull_min\` and \`exponweib\`... > * `#11868 `__: Function > always evaluated twice when using HessianUpdateStrategy... > * `#11875 `__: Typo in the > docstring of simps() > * `#11877 `__: kmeans2 '++' > method is orders of magnitude slower than sklearn.cluster.KMeans() > * `#11884 `__: The upper > code lines are dead code > * `#11886 `__: Array shape > mismatch in scipy.optimize > * `#11892 `__: BUG: stats: > Incorrect handling of edges cases by ttest_rel and... > * `#11908 `__: > LinearOperator should have ndim attribute > * `#11910 `__: Documentation > missing for what M is in init argument > * `#11922 `__: macOS actions > CI has started failing in last couple of days. > * `#11928 `__: DOC: signal: > Wrong description for sepfir2d, cspline2d, qspline2d > * `#11944 `__: curve_fit > documentation unclear on default value of absolute_sigma > * `#11945 `__: Add a > (potentially temporary) py.typed file? > * `#11949 `__: ValueError 'k > exceeds matrix dimensions' for sparse.diagonal()... > * `#11951 `__: BUG: asv > benchmark failed because of cython version > * `#11967 `__: BLD: Azure > windows runs complain about drives > * `#11973 `__: > oaconvolve(a,b,'same') differs in shape from convolve(a,b,'same')... > * `#12002 `__: pybind11 > license > * `#12003 `__: MAINT: > circular SphericalVoronoi input > * `#12015 `__: Reordering of > CSC matrix breaks when you go above int32 limits > * `#12031 `__: Documentation > Rendering Issues Visible in CircleCI Artifacts > * `#12037 `__: MAINT, CI: > new Cython 3.0a4 issue > * `#12087 `__: DOC: some odr > models are missing docs > * `#12119 `__: > signal.fftconvolve no longer convolves types f8 and numpy.float64 > * `#12149 `__: Documentation > of Rosenbrock function > * `#12173 `__: Large memory > usage when indexing sparse matrices with \`np.ix_\` > * `#12178 `__: BUG: stats: > Some discrete distributions don't accept lists of... > * `#12220 `__: BUG, REL: > gh_lists.py compromised scraping > * `#12239 `__: BUG: median > absolute deviation handling of nan > * `#12301 `__: integer > overflow in scipy.sparse.sputils.check_shape when matrix size > 2^32 > * `#12314 `__: > scipy.spatial.transform.Rotation multiplication does not normalize > quaternion > > Pull requests for 1.5.0 > ------------------------------ > > * `#6510 `__: Add Eigenvalue > Range Functionality for Symmetric Eigenvalue Problems > * `#9525 `__: BUG: SuperLU > 'NATURAL' order applies a column permutation > * `#9634 `__: Add the number of > Jacobian evaluations to the output of L-BFGS-B. > * `#9719 `__: ENH: Added kstwo > probability distribution for two-sided one-sample... > * `#9783 `__: WIP: optimize: > added (dense) interpolative decomposition redundancy... > * `#10053 `__: Adding > docstring to weibull_min and weibull_max based on issue... > * `#10136 `__: DEP: Add > warning to linprog_verbose_callback > * `#10380 `__: ENH: add > geometric_slerp > * `#10602 `__: MAINT: > optimize: refactor common linprog arguments into namedtuple > * `#10648 `__: Bounds for the > Powell minimization method > * `#10673 `__: ENH: > approx_fprime --> approx_derivative > * `#10759 `__: ENH: > calculation of region areas in spatial.SphericalVoronoi > * `#10762 `__: BENCH: > optimize: more comprehensive linprog benchmarking > * `#10796 `__: ENH exact > p-values of wilcoxon test in scipy.stats > * `#10797 `__: ENH: linalg: LU > with full pivoting (wrappers for ?getc2/?gesc2) > * `#10824 `__: ENH: Fast > gaussian kernel estimator > * `#10942 `__: BUG: prevent > bound violation in L-BFGS-B optimize method > * `#11003 `__: ENH: add > scipy.linalg.convolution_matrix > * `#11023 `__: improving error > message for cubic-interpolate with duplicates > * `#11045 `__: MAINT: make > bdt{r,rc,ri}() functions accept double n,k args +... > * `#11063 `__: Fix > documentation error in optimize.minimize > * `#11069 `__: ENH: > stats.dlaplace.rvs improvements > * `#11071 `__: DOC: Added > examples to maximum_position in ndimage > * `#11075 `__: DOC: Update > stylistic consistency in multiple files > * `#11097 `__: BUG: stats: > fixing chisquare to return correct results for arrays... > * `#11110 `__: ENH: special: > Cythonise erfinv, erfcinv > * `#11112 `__: BUG: special: > Return NaN outside the domain of \`eval_hermite\` > * `#11114 `__: BUG: special: > fix \`hyp1f1\` for nonnegative integral \`a\` and... > * `#11115 `__: DOC: special: > add docstrings for \`kei\`, \`ker\`, \`keip\`,... > * `#11130 `__: ENH: support > for circular input > * `#11136 `__: BUG: expm > handling of empty input > * `#11138 `__: DOC: stylistic > consistency, punctuation, etc. > * `#11139 `__: MAINT: cluster: > use cython_blas, remove handwritten BLAS wrappers > * `#11146 `__: DOC: update > docs on bp parameter for detrend > * `#11151 `__: DOC: special: > add docstrings for \`bei\`, \`ber\`, \`beip\`,... > * `#11156 `__: ENH: add input > validation for ellipord. > * `#11157 `__: DOC: stylistic > revision, punctuation, consistency > * `#11160 `__: ignore warning > on 0 \* inf in basin hopping > * `#11162 `__: DOC: minor > stylistic revision, undo changes > * `#11164 -------------- next part -------------- An HTML attachment was scrubbed... URL: From rlucas7 at vt.edu Sun Jun 21 18:41:20 2020 From: rlucas7 at vt.edu (rlucas7 at vt.edu) Date: Sun, 21 Jun 2020 18:41:20 -0400 Subject: [SciPy-Dev] ANN: SciPy 1.5.0 In-Reply-To: References: Message-ID: Thanks Tyler Sincerely, -Lucas Roberts > On Jun 21, 2020, at 3:27 PM, Evgeni Burovski wrote: > > ? > Thanks for managing it Tyler > > ??, 21 ???. 2020 ?., 22:21 Tyler Reddy : >> Hi all, >> >> On behalf of the SciPy development team I'm pleased to announce >> the release of SciPy 1.5.0. >> >> Sources and binary wheels can be found at: >> https://pypi.org/project/scipy/ >> and at: >> https://github.com/scipy/scipy/releases/tag/v1.5.0 >> >> One of a few ways to install this release with pip: >> >> pip install scipy==1.5.0 >> >> ========================== >> SciPy 1.5.0 Release Notes >> ========================== >> >> SciPy 1.5.0 is the culmination of 6 months of hard work. It contains >> many new features, numerous bug-fixes, improved test coverage and better >> documentation. There have been a number of deprecations and API changes >> in this release, which are documented below. All users are encouraged to >> upgrade to this release, as there are a large number of bug-fixes and >> optimizations. Before upgrading, we recommend that users check that >> their own code does not use deprecated SciPy functionality (to do so, >> run your code with ``python -Wd`` and check for ``DeprecationWarning`` s). >> Our development attention will now shift to bug-fix releases on the >> 1.5.x branch, and on adding new features on the master branch. >> >> This release requires Python 3.6+ and NumPy 1.14.5 or greater. >> >> For running on PyPy, PyPy3 6.0+ and NumPy 1.15.0 are required. >> >> Highlights of this release >> ---------------------------------- >> >> - wrappers for more than a dozen new ``LAPACK`` routines are now available >> in `scipy.linalg.lapack` >> - Improved support for leveraging 64-bit integer size from linear algebra >> backends >> - addition of the probability distribution for two-sided one-sample >> Kolmogorov-Smirnov tests >> >> >> New features >> ============ >> >> `scipy.cluster` improvements >> --------------------------------------- >> Initialization of `scipy.cluster.vq.kmeans2` using ``minit="++"`` had a >> quadratic complexity in the number of samples. It has been improved, resulting >> in a much faster initialization with quasi-linear complexity. >> >> `scipy.cluster.hierarchy.dendrogram` now respects the ``matplotlib`` color >> palette >> >> `scipy.fft` improvements >> ---------------------------------- >> A new keyword-only argument ``plan`` is added to all FFT functions in this >> module. It is reserved for passing in a precomputed plan from libraries >> providing a FFT backend (such as ``PyFFTW`` and ``mkl-fft``), and it is >> currently not used in SciPy. >> >> `scipy.io` improvements >> --------------------------------- >> `scipy.io.wavfile` error messages are more explicit about what's wrong, and >> extraneous bytes at the ends of files are ignored instead of raising an error >> when the data has successfully been read. >> >> `scipy.io.loadmat` gained a ``simplify_cells`` parameter, which if set to >> ``True`` simplifies the structure of the return value if the ``.mat`` file >> contains cell arrays. >> >> ``pathlib.Path`` objects are now supported in `scipy.io` Matrix Market I/O >> functions >> >> `scipy.linalg` improvements >> -------------------------------------- >> `scipy.linalg.eigh` has been improved. Now various ``LAPACK`` drivers can be >> selected at will and also subsets of eigenvalues can be requested via >> ``subset_by_value`` keyword. Another keyword ``subset_by_index`` is introduced. >> Keywords ``turbo`` and ``eigvals`` are deprecated. >> >> Similarly, standard and generalized Hermitian eigenvalue ``LAPACK`` routines >> ``?evx`` are added and existing ones now have full ``_lwork`` >> counterparts. >> >> Wrappers for the following ``LAPACK`` routines have been added to >> `scipy.linalg.lapack`: >> >> - ``?getc2``: computes the LU factorization of a general matrix with complete >> pivoting >> - ``?gesc2``: solves a linear system given an LU factorization from ``?getc2`` >> - ``?gejsv``: computes the singular value decomposition of a general matrix >> with higher accuracy calculation of tiny singular values and their >> corresponding singular vectors >> - ``?geqrfp``: computes the QR factorization of a general matrix with >> non-negative elements on the diagonal of R >> - ``?gtsvx``: solves a linear system with general tridiagonal matrix >> - ``?gttrf``: computes the LU factorization of a tridiagonal matrix >> - ``?gttrs``: solves a linear system given an LU factorization from ``?gttrf`` >> - ``?ptsvx``: solves a linear system with symmetric positive definite >> tridiagonal matrix >> - ``?pttrf``: computes the LU factorization of a symmetric positive definite >> tridiagonal matrix >> - ``?pttrs``: solves a linear system given an LU factorization from ``?pttrf`` >> - ``?pteqr``: computes the eigenvectors and eigenvalues of a positive definite >> tridiagonal matrix >> - ``?tbtrs``: solves a linear system with a triangular banded matrix >> - ``?csd``: computes the Cosine Sine decomposition of an orthogonal/unitary >> matrix >> >> Generalized QR factorization routines (``?geqrf``) now have full ``_lwork`` >> counterparts. >> >> `scipy.linalg.cossin` Cosine Sine decomposition of unitary matrices has been >> added. >> >> The function `scipy.linalg.khatri_rao`, which computes the Khatri-Rao product, >> was added. >> >> The new function `scipy.linalg.convolution_matrix` constructs the Toeplitz >> matrix representing one-dimensional convolution. >> >> `scipy.optimize` improvements >> ----------------------------------------- >> The finite difference numerical differentiation used in various ``minimize`` >> methods that use gradients has several new features: >> >> - 2-point, 3-point, or complex step finite differences can be used. Previously >> only a 2-step finite difference was available. >> - There is now the possibility to use a relative step size, previously only an >> absolute step size was available. >> - If the ``minimize`` method uses bounds the numerical differentiation strictly >> obeys those limits. >> - The numerical differentiation machinery now makes use of a simple cache, >> which in some cases can reduce the number of function evaluations. >> - ``minimize``'s ``method= 'powell'`` now supports simple bound constraints >> >> There have been several improvements to `scipy.optimize.linprog`: >> >> - The ``linprog`` benchmark suite has been expanded considerably. >> - ``linprog``'s dense pivot-based redundancy removal routine and sparse >> presolve are faster >> - When ``scikit-sparse`` is available, solving sparse problems with >> ``method='interior-point'`` is faster >> >> The caching of values when optimizing a function returning both value and >> gradient together has been improved, avoiding repeated function evaluations >> when using a ``HessianApproximation`` such as ``BFGS``. >> >> ``differential_evolution`` can now use the modern ``np.random.Generator`` as >> well as the legacy ``np.random.RandomState`` as a seed. >> >> `scipy.signal` improvements >> -------------------------------------- >> A new optional argument ``include_nyquist`` is added to ``freqz`` functions in >> this module. It is used for including the last frequency (Nyquist frequency). >> >> `scipy.signal.find_peaks_cwt` now accepts a ``window_size`` parameter for the >> size of the window used to calculate the noise floor. >> >> `scipy.sparse` improvements >> ---------------------------------------- >> Outer indexing is now faster when using a 2d column vector to select column >> indices. >> >> `scipy.sparse.lil.tocsr` is faster >> >> Fixed/improved comparisons between pydata sparse arrays and sparse matrices >> >> BSR format sparse multiplication performance has been improved. >> >> `scipy.sparse.linalg.LinearOperator` has gained the new ``ndim`` class >> attribute >> >> `scipy.spatial` improvements >> --------------------------------------- >> `scipy.spatial.geometric_slerp` has been added to enable geometric >> spherical linear interpolation on an n-sphere >> >> `scipy.spatial.SphericalVoronoi` now supports calculation of region areas in 2D >> and 3D cases >> >> The tree building algorithm used by ``cKDTree`` has improved from quadratic >> worst case time complexity to loglinear. Benchmarks are also now available for >> building and querying of balanced/unbalanced kd-trees. >> >> `scipy.special` improvements >> ---------------------------------------- >> The following functions now have Cython interfaces in `cython_special`: >> >> - `scipy.special.erfinv` >> - `scipy.special.erfcinv` >> - `scipy.special.spherical_jn` >> - `scipy.special.spherical_yn` >> - `scipy.special.spherical_in` >> - `scipy.special.spherical_kn` >> >> `scipy.special.log_softmax` has been added to calculate the logarithm of softmax >> function. It provides better accuracy than ``log(scipy.special.softmax(x))`` for >> inputs that make softmax saturate. >> >> `scipy.stats` improvements >> ------------------------------------ >> The function for generating random samples in `scipy.stats.dlaplace` has been >> improved. The new function is approximately twice as fast with a memory >> footprint reduction between 25 % and 60 % (see gh-11069). >> >> `scipy.stats` functions that accept a seed for reproducible calculations using >> random number generation (e.g. random variates from distributions) can now use >> the modern ``np.random.Generator`` as well as the legacy >> ``np.random.RandomState`` as a seed. >> >> The ``axis`` parameter was added to `scipy.stats.rankdata`. This allows slices >> of an array along the given axis to be ranked independently. >> >> The ``axis`` parameter was added to `scipy.stats.f_oneway`, allowing it to >> compute multiple one-way ANOVA tests for data stored in n-dimensional >> arrays. The performance of ``f_oneway`` was also improved for some cases. >> >> The PDF and CDF methods for ``stats.geninvgauss`` are now significantly faster >> as the numerical integration to calculate the CDF uses a Cython based >> ``LowLevelCallable``. >> >> Moments of the normal distribution (`scipy.stats.norm`) are now calculated using >> analytical formulas instead of numerical integration for greater speed and >> accuracy >> >> Moments and entropy trapezoidal distribution (`scipy.stats.trapz`) are now >> calculated using analytical formulas instead of numerical integration for >> greater speed and accuracy >> >> Methods of the truncated normal distribution (`scipy.stats.truncnorm`), >> especially ``_rvs``, are significantly faster after a complete rewrite. >> >> The `fit` method of the Laplace distribution, `scipy.stats.laplace`, now uses >> the analytical formulas for the maximum likelihood estimates of the parameters. >> >> Generation of random variates is now thread safe for all SciPy distributions. >> 3rd-party distributions may need to modify the signature of the ``_rvs()`` >> method to conform to ``_rvs(self, ..., size=None, random_state=None)``. (A >> one-time VisibleDeprecationWarning is emitted when using non-conformant >> distributions.) >> >> The Kolmogorov-Smirnov two-sided test statistic distribution >> (`scipy.stats.kstwo`) was added. Calculates the distribution of the K-S >> two-sided statistic ``D_n`` for a sample of size n, using a mixture of exact >> and asymptotic algorithms. >> >> The new function ``median_abs_deviation`` replaces the deprecated >> ``median_absolute_deviation``. >> >> The ``wilcoxon`` function now computes the p-value for Wilcoxon's signed rank >> test using the exact distribution for inputs up to length 25. The function has >> a new ``mode`` parameter to specify how the p-value is to be computed. The >> default is ``"auto"``, which uses the exact distribution for inputs up to length >> 25 and the normal approximation for larger inputs. >> >> Added a new Cython-based implementation to evaluate guassian kernel estimates, >> which should improve the performance of ``gaussian_kde`` >> >> The ``winsorize`` function now has a ``nan_policy`` argument for refined >> handling of ``nan`` input values. >> >> The ``binned_statistic_dd`` function with ``statistic="std"`` performance was >> improved by ~4x. >> >> ``scipy.stats.kstest(rvs, cdf,...)`` now handles both one-sample and >> two-sample testing. The one-sample variation uses `scipy.stats.ksone` >> (or `scipy.stats.kstwo` with back off to `scipy.stats.kstwobign`) to calculate >> the p-value. The two-sample variation, invoked if ``cdf`` is array_like, uses >> an algorithm described by Hodges to compute the probability directly, only >> backing off to `scipy.stats.kstwo` in case of overflow. The result in both >> cases is more accurate p-values, especially for two-sample testing with >> smaller (or quite different) sizes. >> >> `scipy.stats.maxwell` performance improvements include a 20 % speed up for >> `fit()`` and 5 % for ``pdf()`` >> >> `scipy.stats.shapiro` and `scipy.stats.jarque_bera` now return a named tuple >> for greater consistency with other ``stats`` functions >> >> Deprecated features >> ================ >> >> `scipy` deprecations >> ---------------------------- >> >> `scipy.special` changes >> -------------------------------- >> The ``bdtr``, ``bdtrc``, and ``bdtri`` functions are deprecating non-negative >> non-integral ``n`` arguments. >> >> `scipy.stats` changes >> ----------------------------- >> The function ``median_absolute_deviation`` is deprecated. Use >> ``median_abs_deviation`` instead. >> >> The use of the string ``"raw"`` with the ``scale`` parameter of ``iqr`` is >> deprecated. Use ``scale=1`` instead. >> >> Backwards incompatible changes >> ========================== >> >> `scipy.interpolate` changes >> ------------------------------------- >> >> `scipy.linalg` changes >> ------------------------------ >> The output signatures of ``?syevr``, ``?heevr`` have been changed from >> ``w, v, info`` to ``w, v, m, isuppz, info`` >> >> The order of output arguments ``w``, ``v`` of ``{gv, gvd, gvx}`` is >> swapped. >> >> `scipy.signal` changes >> ------------------------------- >> The output length of `scipy.signal.upfirdn` has been corrected, resulting >> outputs may now be shorter for some combinations of up/down ratios and input >> signal and filter lengths. >> >> `scipy.signal.resample` now supports a ``domain`` keyword argument for >> specification of time or frequency domain input. >> >> Other changes >> ============= >> Improved support for leveraging 64-bit integer size from linear algebra backends >> in several parts of the SciPy codebase. >> >> Shims designed to ensure the compatibility of SciPy with Python 2.7 have now >> been removed. >> >> Many warnings due to unused imports and unused assignments have been addressed. >> >> Many usage examples were added to function docstrings, and many input >> validations and intuitive exception messages have been added throughout the >> codebase. >> >> Early stage adoption of type annotations in a few parts of the codebase >> >> >> Authors >> ======= >> >> * @endolith >> * Hameer Abbasi >> * ADmitri + >> * Wesley Alves + >> * Berkay Antmen + >> * Sylwester Arabas + >> * Arne K?derle + >> * Christoph Baumgarten >> * Peter Bell >> * Felix Berkenkamp >> * Jord?o Bragantini + >> * Clemens Brunner + >> * Evgeni Burovski >> * Matthias Bussonnier + >> * CJ Carey >> * Derrick Chambers + >> * Leander Claes + >> * Christian Clauss >> * Luigi F. Cruz + >> * dankleeman >> * Andras Deak >> * Milad Sadeghi DM + >> * jeremie du boisberranger + >> * Stefan Endres >> * Malte Esders + >> * Leo Fang + >> * felixhekhorn + >> * Isuru Fernando >> * Andrew Fowlie >> * Lakshay Garg + >> * Gaurav Gijare + >> * Ralf Gommers >> * Emmanuelle Gouillart + >> * Kevin Green + >> * Martin Grignard + >> * Maja Gwozdz >> * Sturla Molden >> * gyu-don + >> * Matt Haberland >> * hakeemo + >> * Charles Harris >> * Alex Henrie >> * Santi Hernandez + >> * William Hickman + >> * Till Hoffmann + >> * Joseph T. Iosue + >> * Anany Shrey Jain >> * Jakob Jakobson >> * Charles Jekel + >> * Julien Jerphanion + >> * Jiacheng-Liu + >> * Christoph Kecht + >> * Paul Kienzle + >> * Reidar Kind + >> * Dmitry E. Kislov + >> * Konrad + >> * Konrad0 >> * Takuya KOUMURA + >> * Krzysztof Pi?ro >> * Peter Mahler Larsen >> * Eric Larson >> * Antony Lee >> * Gregory Lee + >> * Gregory R. Lee >> * Chelsea Liu >> * Cong Ma + >> * Kevin Mader + >> * Maja Gw??d? + >> * Alex Marvin + >> * Matthias K?mmerer >> * Nikolay Mayorov >> * Mazay0 + >> * G. D. McBain >> * Nicholas McKibben + >> * Sabrina J. Mielke + >> * Sebastian J. Mielke + >> * Milo? Komar?evi? + >> * Shubham Mishra + >> * Santiago M. Mola + >> * Grzegorz Mrukwa + >> * Peyton Murray >> * Andrew Nelson >> * Nico Schl?mer >> * nwjenkins + >> * odidev + >> * Sambit Panda >> * Vikas Pandey + >> * Rick Paris + >> * Harshal Prakash Patankar + >> * Balint Pato + >> * Matti Picus >> * Ilhan Polat >> * poom + >> * Siddhesh Poyarekar >> * Vladyslav Rachek + >> * Bharat Raghunathan >> * Manu Rajput + >> * Tyler Reddy >> * Andrew Reed + >> * Lucas Roberts >> * Ariel Rokem >> * Heshy Roskes >> * Matt Ruffalo >> * Atsushi Sakai + >> * Benjamin Santos + >> * Christoph Schock + >> * Lisa Schwetlick + >> * Chris Simpson + >> * Leo Singer >> * Kai Striega >> * S?ren Fuglede J?rgensen >> * Kale-ab Tessera + >> * Seth Troisi + >> * Robert Uhl + >> * Paul van Mulbregt >> * Vasiliy + >> * Isaac Virshup + >> * Pauli Virtanen >> * Shakthi Visagan + >> * Jan Vleeshouwers + >> * Sam Wallan + >> * Lijun Wang + >> * Warren Weckesser >> * Richard Weiss + >> * wenhui-prudencemed + >> * Eric Wieser >> * Josh Wilson >> * James Wright + >> * Ruslan Yevdokymov + >> * Ziyao Zhang + >> >> A total of 129 people contributed to this release. >> People with a "+" by their names contributed a patch for the first time. >> This list of names is automatically generated, and may not be fully complete. >> >> Issues closed for 1.5.0 >> ------------------------------- >> >> * `#1455 `__: ellipord does returns bogus values if gstop or gpass are negative... >> * `#1968 `__: correlate2d's output does not agree with correlate's output in... >> * `#2744 `__: BUG: optimize: '\*\*kw' argument of 'newton_krylov' is not documented >> * `#4755 `__: TypeError: data type "> * `#4921 `__: scipy.optimize maxiter option not working as expected >> * `#5144 `__: RuntimeWarning on csgraph.shortest_path when edge lengths are... >> * `#5309 `__: Documentation of 'hybr' and 'lm' inconsistent in optimize.root >> * `#6026 `__: Replace approx_grad with _numdiff.approx_derivative in scipy.optimize >> * `#6502 `__: Computing Eigenvalues in an Interval with LAPACK >> * `#7058 `__: Errors in special.bdtri and special.bdtr for non-integer k values >> * `#7700 `__: SuperLU does not respect perm_c="NATURAL" >> * `#7895 `__: Improvements to io.loadmat >> * `#8205 `__: ValueError in scipy.linalg.eigvalsh for large matrix >> * `#8278 `__: Memory limit for scipy.sparse.linalg.spsolve with scikit-umfpack >> * `#8327 `__: scipy.stats.mstats.winsorize NaN handling >> * `#8341 `__: scipy.stats.ks_2samp for masked and unmasked data give different... >> * `#8748 `__: scipy.stats.kstest for same distribution: p-values nonuniform >> * `#9042 `__: optimize: Incorrect statement about \`jac\` in the \`minimize\`... >> * `#9197 `__: problem with scipy.signal.butter with 1000+ points array >> * `#9212 `__: EIGH very very slow --> suggesting an easy fix >> * `#9553 `__: ndimage routines behave badly when output has memory overlap... >> * `#9632 `__: ndimage.maximum_filter undocumented behaviour using footprint... >> * `#9658 `__: `scipy.optimize.minimize(method='COBYLA')` not threadsafe >> * `#9710 `__: stats.weightedtau([1], [1.0]) SEGFAULTs >> * `#9797 `__: Master Tracker for some Kolmogorov-Smirnov test Issues >> * `#9844 `__: scipy.signal.upfirdn gives different length matrix versus MATLAB... >> * `#9872 `__: scipy.signal.convolve is slower when vectorized >> * `#9913 `__: BUG: No dt in StateSpace operations >> * `#10014 `__: Distribution names \`weibull_min\`and \`weibull_max\` should... >> * `#10159 `__: BUG: stats: chisquare returns incorrect results for arrays of... >> * `#10302 `__: scipy.fft: Add a \`plan\` argument >> * `#10332 `__: 'Incomplete wav chunk' inconsistent/reason unknown >> * `#10441 `__: Remove uses of \`numpy.dual\`? >> * `#10558 `__: Document implicit sum in csr_matrix() constructor >> * `#10788 `__: LU with full pivoting >> * `#10841 `__: Unexpected behavior in linalg.blas.dtrmm wrapper >> * `#10919 `__: optimize._lbfgsb setulb() function violates parameter bounds >> * `#10963 `__: kstest, ks_2samp: confusing \`mode\` argument descriptions >> * `#11022 `__: Unexpected Result in factorial function with NaN input >> * `#11028 `__: Documentation error in optimize.minimize >> * `#11058 `__: Adding logsoftmax function >> * `#11076 `__: ValueError: Unknown wave file format >> * `#11090 `__: Misconception of the median absolute deviation in stats? >> * `#11095 `__: BUG: find_peaks_cwt test failures in 32-bit Linux wheels >> * `#11107 `__: scipy.io.mmread generated an error "TypeError: startswith first... >> * `#11123 `__: Add wrapper for ?gttrf/?gttrs >> * `#11128 `__: OverflowError in resample_poly (upfirdn) >> * `#11132 `__: Possible bug: rv_discret.ppf for percentiles 0 and 100 and loc... >> * `#11163 `__: Comparisons between scipy spmatrix and can sparse.SparseArray... >> * `#11168 `__: Generalized Pareto variance inaccurate for concentrations near... >> * `#11169 `__: Add wrapper for ?geqrfp >> * `#11184 `__: 2-sided Kolmogorov Smirnov returns p-value of 1 >> * `#11185 `__: The .roots() or solve() function of scipy.interpolate.CubicHermiteSpline... >> * `#11190 `__: Add wrapper for ?tbtrs >> * `#11200 `__: Can no longer slice csr_matrix in 1.3.0 >> * `#11207 `__: _minimize_scalar_bounded: reference before assignment >> * `#11216 `__: linprog: interior-point: Cholmod reordering can be reused >> * `#11223 `__: Add wrappers for ?pttrf, ?pttrs >> * `#11224 `__: Add wrapperfor ?pteqr >> * `#11235 `__: MAINT: Missleading Error Message for IIR Filter >> * `#11244 `__: Missing reference in \`scipy.optimize.line_search\` >> * `#11262 `__: Hermitian Eigenvalue Problem eigh() API and wrapper change proposal >> * `#11266 `__: Sparse matrix constructor data type detection changes on Numpy... >> * `#11270 `__: CI failing: Travis CI Py36 refguide and Linux_Python_36_32bit_full... >> * `#11279 `__: linalg.eigh checks whole array for finite values >> * `#11295 `__: CI: azure does not auto-cancel old jobs on pushes >> * `#11299 `__: stats.truncnorm.rvs 100x slower in v1.4.x than v1.3.3 >> * `#11315 `__: BUG: special: rgamma on negative integers smaller -34 >> * `#11319 `__: Missing \`int64_t\` declaration in rectangular_lsap.cpp >> * `#11323 `__: Compilation failure due to missing symbol pthread_atfork >> * `#11332 `__: BUG: directed_hausdorff distance on sets u and v when u is a... >> * `#11350 `__: Khatri-Rao product >> * `#11354 `__: ENH: Add wrapper for ?gejsv >> * `#11361 `__: Dropped NaN in eval_genlaguerre function >> * `#11363 `__: Dropped NaN in hyperu function >> * `#11365 `__: scipy.stats.binned_statistic regressed in v1.4.0 >> * `#11369 `__: Dropped NaN in eval_hermite >> * `#11370 `__: Dropped NaN in eval_gegenbauer >> * `#11373 `__: Add wrapper for ?gtsvx >> * `#11374 `__: Add wrapper for ?ptsvx >> * `#11391 `__: csgraph.minimum_spanning_tree loses precision >> * `#11398 `__: Update stats to cope with \`np.random.Generator\` machinery >> * `#11412 `__: Array copying causes unwanted type casting from complex to float... >> * `#11415 `__: Where is the Wiener Filter derived from? >> * `#11416 `__: _lib._util.getargspec_no_self is missing KEYWORD_ONLY support >> * `#11428 `__: Documentation on SHGO inequality constraints appears contradictory >> * `#11429 `__: Add LAPACK's ZUNCSD cosine sine decomposition >> * `#11438 `__: run_dualannealing passes bounds incorrectly in benchmarks/optimize.py >> * `#11441 `__: Can't run optimize benchmarks >> * `#11442 `__: Chebyshev weights >> * `#11448 `__: Wrongly typed comparison in integrate.quad >> * `#11458 `__: BUG: maximum_bipartite_matching produces infeasible solution >> * `#11460 `__: CI failing: 2 Travis CI tests fail with numpy build or version... >> * `#11462 `__: Bug on "++" initialization on "kmeans2" >> * `#11464 `__: Shouldn't data type of KDE evaluation should be like in the input... >> * `#11468 `__: performance of binned_statistics_2d 100x slowdown from 1.3.2... >> * `#11484 `__: Callback function doesn't give the same value as the one being... >> * `#11492 `__: Confusing dendrogram labelling >> * `#11493 `__: scipy.optimize.least_squares fails if the return array of the... >> * `#11494 `__: Error performing kronecker product between large sparse vectors >> * `#11503 `__: medfilt produces 0 on input of length 1 >> * `#11529 `__: Pyflakes generates almost 700 warnings. >> * `#11566 `__: irfft/irfft2/irfftn docs are slightly confusing re: input type. >> * `#11572 `__: least_squares: too small tolerances not catched with method='lm' >> * `#11581 `__: DOC: scipy.interpolate.RectSphereBivariateSpline >> * `#11586 `__: Differential evolution breaks with LinearConstraints with sparse... >> * `#11595 `__: scipy.spatial.cKDTree construction slow for some datasets >> * `#11598 `__: output of special.voigt_profile when sigma=0 >> * `#11601 `__: linalg tests failing in runtests.py >> * `#11602 `__: scipy.optimize.linear_sum_assignment returns reverse diagonal... >> * `#11610 `__: Analytic formula for normal moments >> * `#11611 `__: Build failure with gfortran 10 >> * `#11613 `__: TST, MAINT: test_quadpack TestCtypesQuad wasn't fully migrated... >> * `#11630 `__: SmoothBivariateSpline bbox parameter >> * `#11635 `__: typo in docstring of scipy.stats.norminvgauss >> * `#11637 `__: BUG: core dumps when calling scipy.interpolate.interp1d with... >> * `#11638 `__: better documentation for 'return_all' option in minimize(Nelder... >> * `#11652 `__: TST, MAINT: CI failures for pre-release NumPy wheels >> * `#11659 `__: optimize.fmin_l_bfgs_b needs bound check and appropiate error... >> * `#11660 `__: BUG/ENH: distribution.ncf with nc=0 returns nan >> * `#11661 `__: scipy.ndimage.convolve1d and correlate1d don't behave properly... >> * `#11669 `__: p-value varies with the order of the data >> * `#11676 `__: documentation of scipy.spatial.HalfspaceIntersection: wrong method... >> * `#11685 `__: Rotation cannot be expressed as matrix >> * `#11686 `__: MAINT: mypy imports of Cython "modules" >> * `#11693 `__: TestDifferentialEvolutionSolver::test_L4 failing in CI >> * `#11696 `__: DOC: incorrect compiler information for macOS in docs >> * `#11709 `__: eigh() tests fail to pass, crash Python with seemingly ramdom... >> * `#11763 `__: Small error in gamma continuous rv fit comments >> * `#11769 `__: truncnorm.rvs Weird Behaviors >> * `#11770 `__: crash in TestEigh::test_value_subsets >> * `#11795 `__: trapz distribution mean computed using single precision >> * `#11800 `__: Segmentation fault in scipy.odr for multidimensional independent... >> * `#11811 `__: pyflakes silently failing on travis-ci >> * `#11826 `__: Error with _fblas >> * `#11827 `__: \`fft.tests.test_numpy.test_multiprocess\` hangs on Python3.8... >> * `#11835 `__: tests with \`multiprocessing\` hang on Python 3.8 on macOS >> * `#11839 `__: linalg.expm returns nans with RuntimeWarning: overflow encountered... >> * `#11856 `__: Documentation of fit methods for \`weibull_min\` and \`exponweib\`... >> * `#11868 `__: Function always evaluated twice when using HessianUpdateStrategy... >> * `#11875 `__: Typo in the docstring of simps() >> * `#11877 `__: kmeans2 '++' method is orders of magnitude slower than sklearn.cluster.KMeans() >> * `#11884 `__: The upper code lines are dead code >> * `#11886 `__: Array shape mismatch in scipy.optimize >> * `#11892 `__: BUG: stats: Incorrect handling of edges cases by ttest_rel and... >> * `#11908 `__: LinearOperator should have ndim attribute >> * `#11910 `__: Documentation missing for what M is in init argument >> * `#11922 `__: macOS actions CI has started failing in last couple of days. >> * `#11928 `__: DOC: signal: Wrong description for sepfir2d, cspline2d, qspline2d >> * `#11944 `__: curve_fit documentation unclear on default value of absolute_sigma >> * `#11945 `__: Add a (potentially temporary) py.typed file? >> * `#11949 `__: ValueError 'k exceeds matrix dimensions' for sparse.diagonal()... >> * `#11951 `__: BUG: asv benchmark failed because of cython version >> * `#11967 `__: BLD: Azure windows runs complain about drives >> * `#11973 `__: oaconvolve(a,b,'same') differs in shape from convolve(a,b,'same')... >> * `#12002 `__: pybind11 license >> * `#12003 `__: MAINT: circular SphericalVoronoi input >> * `#12015 `__: Reordering of CSC matrix breaks when you go above int32 limits >> * `#12031 `__: Documentation Rendering Issues Visible in CircleCI Artifacts >> * `#12037 `__: MAINT, CI: new Cython 3.0a4 issue >> * `#12087 `__: DOC: some odr models are missing docs >> * `#12119 `__: signal.fftconvolve no longer convolves types f8 and numpy.float64 >> * `#12149 `__: Documentation of Rosenbrock function >> * `#12173 `__: Large memory usage when indexing sparse matrices with \`np.ix_\` >> * `#12178 `__: BUG: stats: Some discrete distributions don't accept lists of... >> * `#12220 `__: BUG, REL: gh_lists.py compromised scraping >> * `#12239 `__: BUG: median absolute deviation handling of nan >> * `#12301 `__: integer overflow in scipy.sparse.sputils.check_shape when matrix size > 2^32 >> * `#12314 `__: scipy.spatial.transform.Rotation multiplication does not normalize quaternion >> >> Pull requests for 1.5.0 >> ------------------------------ >> >> * `#6510 `__: Add Eigenvalue Range Functionality for Symmetric Eigenvalue Problems >> * `#9525 `__: BUG: SuperLU 'NATURAL' order applies a column permutation >> * `#9634 `__: Add the number of Jacobian evaluations to the output of L-BFGS-B. >> * `#9719 `__: ENH: Added kstwo probability distribution for two-sided one-sample... >> * `#9783 `__: WIP: optimize: added (dense) interpolative decomposition redundancy... >> * `#10053 `__: Adding docstring to weibull_min and weibull_max based on issue... >> * `#10136 `__: DEP: Add warning to linprog_verbose_callback >> * `#10380 `__: ENH: add geometric_slerp >> * `#10602 `__: MAINT: optimize: refactor common linprog arguments into namedtuple >> * `#10648 `__: Bounds for the Powell minimization method >> * `#10673 `__: ENH: approx_fprime --> approx_derivative >> * `#10759 `__: ENH: calculation of region areas in spatial.SphericalVoronoi >> * `#10762 `__: BENCH: optimize: more comprehensive linprog benchmarking >> * `#10796 `__: ENH exact p-values of wilcoxon test in scipy.stats >> * `#10797 `__: ENH: linalg: LU with full pivoting (wrappers for ?getc2/?gesc2) >> * `#10824 `__: ENH: Fast gaussian kernel estimator >> * `#10942 `__: BUG: prevent bound violation in L-BFGS-B optimize method >> * `#11003 `__: ENH: add scipy.linalg.convolution_matrix >> * `#11023 `__: improving error message for cubic-interpolate with duplicates >> * `#11045 `__: MAINT: make bdt{r,rc,ri}() functions accept double n,k args +... >> * `#11063 `__: Fix documentation error in optimize.minimize >> * `#11069 `__: ENH: stats.dlaplace.rvs improvements >> * `#11071 `__: DOC: Added examples to maximum_position in ndimage >> * `#11075 `__: DOC: Update stylistic consistency in multiple files >> * `#11097 `__: BUG: stats: fixing chisquare to return correct results for arrays... >> * `#11110 `__: ENH: special: Cythonise erfinv, erfcinv >> * `#11112 `__: BUG: special: Return NaN outside the domain of \`eval_hermite\` >> * `#11114 `__: BUG: special: fix \`hyp1f1\` for nonnegative integral \`a\` and... >> * `#11115 `__: DOC: special: add docstrings for \`kei\`, \`ker\`, \`keip\`,... >> * `#11130 `__: ENH: support for circular input >> * `#11136 `__: BUG: expm handling of empty input >> * `#11138 `__: DOC: stylistic consistency, punctuation, etc. >> * `#11139 `__: MAINT: cluster: use cython_blas, remove handwritten BLAS wrappers >> * `#11146 `__: DOC: update docs on bp parameter for detrend >> * `#11151 `__: DOC: special: add docstrings for \`bei\`, \`ber\`, \`beip\`,... >> * `#11156 `__: ENH: add input validation for ellipord. >> * `#11157 `__: DOC: stylistic revision, punctuation, consistency >> * `#11160 `__: ignore warning on 0 \* inf in basin hopping >> * `#11162 `__: DOC: minor stylistic revision, undo changes >> * `#11164 _______________________________________________ > SciPy-Dev mailing list > SciPy-Dev at python.org > https://mail.python.org/mailman/listinfo/scipy-dev -------------- next part -------------- An HTML attachment was scrubbed... URL: From warren.weckesser at gmail.com Mon Jun 22 09:11:44 2020 From: warren.weckesser at gmail.com (Warren Weckesser) Date: Mon, 22 Jun 2020 09:11:44 -0400 Subject: [SciPy-Dev] ANN: SciPy 1.5.0 In-Reply-To: References: Message-ID: On 6/21/20, Tyler Reddy wrote: > Hi all, > > On behalf of the SciPy development team I'm pleased to announce > the release of SciPy 1.5.0. Thanks everyone, and especially Tyler for managing the release! Warren > > Sources and binary wheels can be found at: > https://pypi.org/project/scipy/ > and at: > https://github.com/scipy/scipy/releases/tag/v1.5.0 > > One of a few ways to install this release with pip: > > pip install scipy==1.5.0 > > ========================== > SciPy 1.5.0 Release Notes > ========================== > > SciPy 1.5.0 is the culmination of 6 months of hard work. It contains > many new features, numerous bug-fixes, improved test coverage and better > documentation. There have been a number of deprecations and API changes > in this release, which are documented below. All users are encouraged to > upgrade to this release, as there are a large number of bug-fixes and > optimizations. Before upgrading, we recommend that users check that > their own code does not use deprecated SciPy functionality (to do so, > run your code with ``python -Wd`` and check for ``DeprecationWarning`` s). > Our development attention will now shift to bug-fix releases on the > 1.5.x branch, and on adding new features on the master branch. > > This release requires Python 3.6+ and NumPy 1.14.5 or greater. > > For running on PyPy, PyPy3 6.0+ and NumPy 1.15.0 are required. > > Highlights of this release > ---------------------------------- > > - wrappers for more than a dozen new ``LAPACK`` routines are now available > in `scipy.linalg.lapack` > - Improved support for leveraging 64-bit integer size from linear algebra > backends > - addition of the probability distribution for two-sided one-sample > Kolmogorov-Smirnov tests > > > New features > ============ > > `scipy.cluster` improvements > --------------------------------------- > Initialization of `scipy.cluster.vq.kmeans2` using ``minit="++"`` had a > quadratic complexity in the number of samples. It has been improved, > resulting > in a much faster initialization with quasi-linear complexity. > > `scipy.cluster.hierarchy.dendrogram` now respects the ``matplotlib`` color > palette > > `scipy.fft` improvements > ---------------------------------- > A new keyword-only argument ``plan`` is added to all FFT functions in this > module. It is reserved for passing in a precomputed plan from libraries > providing a FFT backend (such as ``PyFFTW`` and ``mkl-fft``), and it is > currently not used in SciPy. > > `scipy.io` improvements > --------------------------------- > `scipy.io.wavfile` error messages are more explicit about what's wrong, and > extraneous bytes at the ends of files are ignored instead of raising an > error > when the data has successfully been read. > > `scipy.io.loadmat` gained a ``simplify_cells`` parameter, which if set to > ``True`` simplifies the structure of the return value if the ``.mat`` file > contains cell arrays. > > ``pathlib.Path`` objects are now supported in `scipy.io` Matrix Market I/O > functions > > `scipy.linalg` improvements > -------------------------------------- > `scipy.linalg.eigh` has been improved. Now various ``LAPACK`` drivers can > be > selected at will and also subsets of eigenvalues can be requested via > ``subset_by_value`` keyword. Another keyword ``subset_by_index`` is > introduced. > Keywords ``turbo`` and ``eigvals`` are deprecated. > > Similarly, standard and generalized Hermitian eigenvalue ``LAPACK`` > routines > ``?evx`` are added and existing ones now have full ``_lwork`` > counterparts. > > Wrappers for the following ``LAPACK`` routines have been added to > `scipy.linalg.lapack`: > > - ``?getc2``: computes the LU factorization of a general matrix with > complete > pivoting > - ``?gesc2``: solves a linear system given an LU factorization from > ``?getc2`` > - ``?gejsv``: computes the singular value decomposition of a general > matrix > with higher accuracy calculation of tiny singular values and their > corresponding singular vectors > - ``?geqrfp``: computes the QR factorization of a general matrix with > non-negative elements on the diagonal of R > - ``?gtsvx``: solves a linear system with general tridiagonal matrix > - ``?gttrf``: computes the LU factorization of a tridiagonal matrix > - ``?gttrs``: solves a linear system given an LU factorization from > ``?gttrf`` > - ``?ptsvx``: solves a linear system with symmetric positive definite > tridiagonal matrix > - ``?pttrf``: computes the LU factorization of a symmetric positive > definite > tridiagonal matrix > - ``?pttrs``: solves a linear system given an LU factorization from > ``?pttrf`` > - ``?pteqr``: computes the eigenvectors and eigenvalues of a positive > definite > tridiagonal matrix > - ``?tbtrs``: solves a linear system with a triangular banded matrix > - ``?csd``: computes the Cosine Sine decomposition of an > orthogonal/unitary > matrix > > Generalized QR factorization routines (``?geqrf``) now have full ``_lwork`` > counterparts. > > `scipy.linalg.cossin` Cosine Sine decomposition of unitary matrices has > been > added. > > The function `scipy.linalg.khatri_rao`, which computes the Khatri-Rao > product, > was added. > > The new function `scipy.linalg.convolution_matrix` constructs the Toeplitz > matrix representing one-dimensional convolution. > > `scipy.optimize` improvements > ----------------------------------------- > The finite difference numerical differentiation used in various > ``minimize`` > methods that use gradients has several new features: > > - 2-point, 3-point, or complex step finite differences can be used. > Previously > only a 2-step finite difference was available. > - There is now the possibility to use a relative step size, previously > only an > absolute step size was available. > - If the ``minimize`` method uses bounds the numerical differentiation > strictly > obeys those limits. > - The numerical differentiation machinery now makes use of a simple cache, > which in some cases can reduce the number of function evaluations. > - ``minimize``'s ``method= 'powell'`` now supports simple bound > constraints > > There have been several improvements to `scipy.optimize.linprog`: > > - The ``linprog`` benchmark suite has been expanded considerably. > - ``linprog``'s dense pivot-based redundancy removal routine and sparse > presolve are faster > - When ``scikit-sparse`` is available, solving sparse problems with > ``method='interior-point'`` is faster > > The caching of values when optimizing a function returning both value and > gradient together has been improved, avoiding repeated function evaluations > when using a ``HessianApproximation`` such as ``BFGS``. > > ``differential_evolution`` can now use the modern ``np.random.Generator`` > as > well as the legacy ``np.random.RandomState`` as a seed. > > `scipy.signal` improvements > -------------------------------------- > A new optional argument ``include_nyquist`` is added to ``freqz`` functions > in > this module. It is used for including the last frequency (Nyquist > frequency). > > `scipy.signal.find_peaks_cwt` now accepts a ``window_size`` parameter for > the > size of the window used to calculate the noise floor. > > `scipy.sparse` improvements > ---------------------------------------- > Outer indexing is now faster when using a 2d column vector to select column > indices. > > `scipy.sparse.lil.tocsr` is faster > > Fixed/improved comparisons between pydata sparse arrays and sparse matrices > > BSR format sparse multiplication performance has been improved. > > `scipy.sparse.linalg.LinearOperator` has gained the new ``ndim`` class > attribute > > `scipy.spatial` improvements > --------------------------------------- > `scipy.spatial.geometric_slerp` has been added to enable geometric > spherical linear interpolation on an n-sphere > > `scipy.spatial.SphericalVoronoi` now supports calculation of region areas > in 2D > and 3D cases > > The tree building algorithm used by ``cKDTree`` has improved from quadratic > worst case time complexity to loglinear. Benchmarks are also now available > for > building and querying of balanced/unbalanced kd-trees. > > `scipy.special` improvements > ---------------------------------------- > The following functions now have Cython interfaces in `cython_special`: > > - `scipy.special.erfinv` > - `scipy.special.erfcinv` > - `scipy.special.spherical_jn` > - `scipy.special.spherical_yn` > - `scipy.special.spherical_in` > - `scipy.special.spherical_kn` > > `scipy.special.log_softmax` has been added to calculate the logarithm of > softmax > function. It provides better accuracy than > ``log(scipy.special.softmax(x))`` for > inputs that make softmax saturate. > > `scipy.stats` improvements > ------------------------------------ > The function for generating random samples in `scipy.stats.dlaplace` has > been > improved. The new function is approximately twice as fast with a memory > footprint reduction between 25 % and 60 % (see gh-11069). > > `scipy.stats` functions that accept a seed for reproducible calculations > using > random number generation (e.g. random variates from distributions) can now > use > the modern ``np.random.Generator`` as well as the legacy > ``np.random.RandomState`` as a seed. > > The ``axis`` parameter was added to `scipy.stats.rankdata`. This allows > slices > of an array along the given axis to be ranked independently. > > The ``axis`` parameter was added to `scipy.stats.f_oneway`, allowing it to > compute multiple one-way ANOVA tests for data stored in n-dimensional > arrays. The performance of ``f_oneway`` was also improved for some cases. > > The PDF and CDF methods for ``stats.geninvgauss`` are now significantly > faster > as the numerical integration to calculate the CDF uses a Cython based > ``LowLevelCallable``. > > Moments of the normal distribution (`scipy.stats.norm`) are now calculated > using > analytical formulas instead of numerical integration for greater speed and > accuracy > > Moments and entropy trapezoidal distribution (`scipy.stats.trapz`) are now > calculated using analytical formulas instead of numerical integration for > greater speed and accuracy > > Methods of the truncated normal distribution (`scipy.stats.truncnorm`), > especially ``_rvs``, are significantly faster after a complete rewrite. > > The `fit` method of the Laplace distribution, `scipy.stats.laplace`, now > uses > the analytical formulas for the maximum likelihood estimates of the > parameters. > > Generation of random variates is now thread safe for all SciPy > distributions. > 3rd-party distributions may need to modify the signature of the ``_rvs()`` > method to conform to ``_rvs(self, ..., size=None, random_state=None)``. (A > one-time VisibleDeprecationWarning is emitted when using non-conformant > distributions.) > > The Kolmogorov-Smirnov two-sided test statistic distribution > (`scipy.stats.kstwo`) was added. Calculates the distribution of the K-S > two-sided statistic ``D_n`` for a sample of size n, using a mixture of > exact > and asymptotic algorithms. > > The new function ``median_abs_deviation`` replaces the deprecated > ``median_absolute_deviation``. > > The ``wilcoxon`` function now computes the p-value for Wilcoxon's signed > rank > test using the exact distribution for inputs up to length 25. The function > has > a new ``mode`` parameter to specify how the p-value is to be computed. The > default is ``"auto"``, which uses the exact distribution for inputs up to > length > 25 and the normal approximation for larger inputs. > > Added a new Cython-based implementation to evaluate guassian kernel > estimates, > which should improve the performance of ``gaussian_kde`` > > The ``winsorize`` function now has a ``nan_policy`` argument for refined > handling of ``nan`` input values. > > The ``binned_statistic_dd`` function with ``statistic="std"`` performance > was > improved by ~4x. > > ``scipy.stats.kstest(rvs, cdf,...)`` now handles both one-sample and > two-sample testing. The one-sample variation uses `scipy.stats.ksone` > (or `scipy.stats.kstwo` with back off to `scipy.stats.kstwobign`) to > calculate > the p-value. The two-sample variation, invoked if ``cdf`` is array_like, > uses > an algorithm described by Hodges to compute the probability directly, only > backing off to `scipy.stats.kstwo` in case of overflow. The result in both > cases is more accurate p-values, especially for two-sample testing with > smaller (or quite different) sizes. > > `scipy.stats.maxwell` performance improvements include a 20 % speed up for > `fit()`` and 5 % for ``pdf()`` > > `scipy.stats.shapiro` and `scipy.stats.jarque_bera` now return a named > tuple > for greater consistency with other ``stats`` functions > > Deprecated features > ================ > > `scipy` deprecations > ---------------------------- > > `scipy.special` changes > -------------------------------- > The ``bdtr``, ``bdtrc``, and ``bdtri`` functions are deprecating > non-negative > non-integral ``n`` arguments. > > `scipy.stats` changes > ----------------------------- > The function ``median_absolute_deviation`` is deprecated. Use > ``median_abs_deviation`` instead. > > The use of the string ``"raw"`` with the ``scale`` parameter of ``iqr`` is > deprecated. Use ``scale=1`` instead. > > Backwards incompatible changes > ========================== > > `scipy.interpolate` changes > ------------------------------------- > > `scipy.linalg` changes > ------------------------------ > The output signatures of ``?syevr``, ``?heevr`` have been changed from > ``w, v, info`` to ``w, v, m, isuppz, info`` > > The order of output arguments ``w``, ``v`` of ``{gv, gvd, gvx}`` is > swapped. > > `scipy.signal` changes > ------------------------------- > The output length of `scipy.signal.upfirdn` has been corrected, resulting > outputs may now be shorter for some combinations of up/down ratios and > input > signal and filter lengths. > > `scipy.signal.resample` now supports a ``domain`` keyword argument for > specification of time or frequency domain input. > > Other changes > ============= > Improved support for leveraging 64-bit integer size from linear algebra > backends > in several parts of the SciPy codebase. > > Shims designed to ensure the compatibility of SciPy with Python 2.7 have > now > been removed. > > Many warnings due to unused imports and unused assignments have been > addressed. > > Many usage examples were added to function docstrings, and many input > validations and intuitive exception messages have been added throughout the > codebase. > > Early stage adoption of type annotations in a few parts of the codebase > > > Authors > ======= > > * @endolith > * Hameer Abbasi > * ADmitri + > * Wesley Alves + > * Berkay Antmen + > * Sylwester Arabas + > * Arne K?derle + > * Christoph Baumgarten > * Peter Bell > * Felix Berkenkamp > * Jord?o Bragantini + > * Clemens Brunner + > * Evgeni Burovski > * Matthias Bussonnier + > * CJ Carey > * Derrick Chambers + > * Leander Claes + > * Christian Clauss > * Luigi F. Cruz + > * dankleeman > * Andras Deak > * Milad Sadeghi DM + > * jeremie du boisberranger + > * Stefan Endres > * Malte Esders + > * Leo Fang + > * felixhekhorn + > * Isuru Fernando > * Andrew Fowlie > * Lakshay Garg + > * Gaurav Gijare + > * Ralf Gommers > * Emmanuelle Gouillart + > * Kevin Green + > * Martin Grignard + > * Maja Gwozdz > * Sturla Molden > * gyu-don + > * Matt Haberland > * hakeemo + > * Charles Harris > * Alex Henrie > * Santi Hernandez + > * William Hickman + > * Till Hoffmann + > * Joseph T. Iosue + > * Anany Shrey Jain > * Jakob Jakobson > * Charles Jekel + > * Julien Jerphanion + > * Jiacheng-Liu + > * Christoph Kecht + > * Paul Kienzle + > * Reidar Kind + > * Dmitry E. Kislov + > * Konrad + > * Konrad0 > * Takuya KOUMURA + > * Krzysztof Pi?ro > * Peter Mahler Larsen > * Eric Larson > * Antony Lee > * Gregory Lee + > * Gregory R. Lee > * Chelsea Liu > * Cong Ma + > * Kevin Mader + > * Maja Gw??d? + > * Alex Marvin + > * Matthias K?mmerer > * Nikolay Mayorov > * Mazay0 + > * G. D. McBain > * Nicholas McKibben + > * Sabrina J. Mielke + > * Sebastian J. Mielke + > * Milo? Komar?evi? + > * Shubham Mishra + > * Santiago M. Mola + > * Grzegorz Mrukwa + > * Peyton Murray > * Andrew Nelson > * Nico Schl?mer > * nwjenkins + > * odidev + > * Sambit Panda > * Vikas Pandey + > * Rick Paris + > * Harshal Prakash Patankar + > * Balint Pato + > * Matti Picus > * Ilhan Polat > * poom + > * Siddhesh Poyarekar > * Vladyslav Rachek + > * Bharat Raghunathan > * Manu Rajput + > * Tyler Reddy > * Andrew Reed + > * Lucas Roberts > * Ariel Rokem > * Heshy Roskes > * Matt Ruffalo > * Atsushi Sakai + > * Benjamin Santos + > * Christoph Schock + > * Lisa Schwetlick + > * Chris Simpson + > * Leo Singer > * Kai Striega > * S?ren Fuglede J?rgensen > * Kale-ab Tessera + > * Seth Troisi + > * Robert Uhl + > * Paul van Mulbregt > * Vasiliy + > * Isaac Virshup + > * Pauli Virtanen > * Shakthi Visagan + > * Jan Vleeshouwers + > * Sam Wallan + > * Lijun Wang + > * Warren Weckesser > * Richard Weiss + > * wenhui-prudencemed + > * Eric Wieser > * Josh Wilson > * James Wright + > * Ruslan Yevdokymov + > * Ziyao Zhang + > > A total of 129 people contributed to this release. > People with a "+" by their names contributed a patch for the first time. > This list of names is automatically generated, and may not be fully > complete. > > Issues closed for 1.5.0 > ------------------------------- > > * `#1455 `__: ellipord does > returns bogus values if gstop or gpass are negative... > * `#1968 `__: correlate2d's > output does not agree with correlate's output in... > * `#2744 `__: BUG: optimize: > '\*\*kw' argument of 'newton_krylov' is not documented > * `#4755 `__: TypeError: data > type " * `#4921 `__: scipy.optimize > maxiter option not working as expected > * `#5144 `__: RuntimeWarning on > csgraph.shortest_path when edge lengths are... > * `#5309 `__: Documentation of > 'hybr' and 'lm' inconsistent in optimize.root > * `#6026 `__: Replace > approx_grad with _numdiff.approx_derivative in scipy.optimize > * `#6502 `__: Computing > Eigenvalues in an Interval with LAPACK > * `#7058 `__: Errors in > special.bdtri and special.bdtr for non-integer k values > * `#7700 `__: SuperLU does not > respect perm_c="NATURAL" > * `#7895 `__: Improvements to > io.loadmat > * `#8205 `__: ValueError in > scipy.linalg.eigvalsh for large matrix > * `#8278 `__: Memory limit for > scipy.sparse.linalg.spsolve with scikit-umfpack > * `#8327 `__: > scipy.stats.mstats.winsorize NaN handling > * `#8341 `__: > scipy.stats.ks_2samp for masked and unmasked data give different... > * `#8748 `__: > scipy.stats.kstest for same distribution: p-values nonuniform > * `#9042 `__: optimize: > Incorrect statement about \`jac\` in the \`minimize\`... > * `#9197 `__: problem with > scipy.signal.butter with 1000+ points array > * `#9212 `__: EIGH very very > slow --> suggesting an easy fix > * `#9553 `__: ndimage routines > behave badly when output has memory overlap... > * `#9632 `__: > ndimage.maximum_filter undocumented behaviour using footprint... > * `#9658 `__: > `scipy.optimize.minimize(method='COBYLA')` not threadsafe > * `#9710 `__: > stats.weightedtau([1], [1.0]) SEGFAULTs > * `#9797 `__: Master Tracker > for some Kolmogorov-Smirnov test Issues > * `#9844 `__: > scipy.signal.upfirdn gives different length matrix versus MATLAB... > * `#9872 `__: > scipy.signal.convolve is slower when vectorized > * `#9913 `__: BUG: No dt in > StateSpace operations > * `#10014 `__: Distribution > names \`weibull_min\`and \`weibull_max\` should... > * `#10159 `__: BUG: stats: > chisquare returns incorrect results for arrays of... > * `#10302 `__: scipy.fft: Add > a \`plan\` argument > * `#10332 `__: 'Incomplete wav > chunk' inconsistent/reason unknown > * `#10441 `__: Remove uses of > \`numpy.dual\`? > * `#10558 `__: Document > implicit sum in csr_matrix() constructor > * `#10788 `__: LU with full > pivoting > * `#10841 `__: Unexpected > behavior in linalg.blas.dtrmm wrapper > * `#10919 `__: > optimize._lbfgsb setulb() function violates parameter bounds > * `#10963 `__: kstest, > ks_2samp: confusing \`mode\` argument descriptions > * `#11022 `__: Unexpected > Result in factorial function with NaN input > * `#11028 `__: Documentation > error in optimize.minimize > * `#11058 `__: Adding > logsoftmax function > * `#11076 `__: ValueError: > Unknown wave file format > * `#11090 `__: Misconception > of the median absolute deviation in stats? > * `#11095 `__: BUG: > find_peaks_cwt test failures in 32-bit Linux wheels > * `#11107 `__: scipy.io.mmread > generated an error "TypeError: startswith first... > * `#11123 `__: Add wrapper for > ?gttrf/?gttrs > * `#11128 `__: OverflowError > in resample_poly (upfirdn) > * `#11132 `__: Possible bug: > rv_discret.ppf for percentiles 0 and 100 and loc... > * `#11163 `__: Comparisons > between scipy spmatrix and can sparse.SparseArray... > * `#11168 `__: Generalized > Pareto variance inaccurate for concentrations near... > * `#11169 `__: Add wrapper for > ?geqrfp > * `#11184 `__: 2-sided > Kolmogorov Smirnov returns p-value of 1 > * `#11185 `__: The .roots() or > solve() function of scipy.interpolate.CubicHermiteSpline... > * `#11190 `__: Add wrapper for > ?tbtrs > * `#11200 `__: Can no longer > slice csr_matrix in 1.3.0 > * `#11207 `__: > _minimize_scalar_bounded: reference before assignment > * `#11216 `__: linprog: > interior-point: Cholmod reordering can be reused > * `#11223 `__: Add wrappers > for ?pttrf, ?pttrs > * `#11224 `__: Add wrapperfor > ?pteqr > * `#11235 `__: MAINT: > Missleading Error Message for IIR Filter > * `#11244 `__: Missing > reference in \`scipy.optimize.line_search\` > * `#11262 `__: Hermitian > Eigenvalue Problem eigh() API and wrapper change proposal > * `#11266 `__: Sparse matrix > constructor data type detection changes on Numpy... > * `#11270 `__: CI failing: > Travis CI Py36 refguide and Linux_Python_36_32bit_full... > * `#11279 `__: linalg.eigh > checks whole array for finite values > * `#11295 `__: CI: azure does > not auto-cancel old jobs on pushes > * `#11299 `__: > stats.truncnorm.rvs 100x slower in v1.4.x than v1.3.3 > * `#11315 `__: BUG: special: > rgamma on negative integers smaller -34 > * `#11319 `__: Missing > \`int64_t\` declaration in rectangular_lsap.cpp > * `#11323 `__: Compilation > failure due to missing symbol pthread_atfork > * `#11332 `__: BUG: > directed_hausdorff distance on sets u and v when u is a... > * `#11350 `__: Khatri-Rao > product > * `#11354 `__: ENH: Add > wrapper for ?gejsv > * `#11361 `__: Dropped NaN in > eval_genlaguerre function > * `#11363 `__: Dropped NaN in > hyperu function > * `#11365 `__: > scipy.stats.binned_statistic regressed in v1.4.0 > * `#11369 `__: Dropped NaN in > eval_hermite > * `#11370 `__: Dropped NaN in > eval_gegenbauer > * `#11373 `__: Add wrapper for > ?gtsvx > * `#11374 `__: Add wrapper for > ?ptsvx > * `#11391 `__: > csgraph.minimum_spanning_tree loses precision > * `#11398 `__: Update stats to > cope with \`np.random.Generator\` machinery > * `#11412 `__: Array copying > causes unwanted type casting from complex to float... > * `#11415 `__: Where is the > Wiener Filter derived from? > * `#11416 `__: > _lib._util.getargspec_no_self is missing KEYWORD_ONLY support > * `#11428 `__: Documentation > on SHGO inequality constraints appears contradictory > * `#11429 `__: Add LAPACK's > ZUNCSD cosine sine decomposition > * `#11438 `__: > run_dualannealing passes bounds incorrectly in benchmarks/optimize.py > * `#11441 `__: Can't run > optimize benchmarks > * `#11442 `__: Chebyshev > weights > * `#11448 `__: Wrongly typed > comparison in integrate.quad > * `#11458 `__: BUG: > maximum_bipartite_matching produces infeasible solution > * `#11460 `__: CI failing: 2 > Travis CI tests fail with numpy build or version... > * `#11462 `__: Bug on "++" > initialization on "kmeans2" > * `#11464 `__: Shouldn't data > type of KDE evaluation should be like in the input... > * `#11468 `__: performance of > binned_statistics_2d 100x slowdown from 1.3.2... > * `#11484 `__: Callback > function doesn't give the same value as the one being... > * `#11492 `__: Confusing > dendrogram labelling > * `#11493 `__: > scipy.optimize.least_squares fails if the return array of the... > * `#11494 `__: Error > performing kronecker product between large sparse vectors > * `#11503 `__: medfilt > produces 0 on input of length 1 > * `#11529 `__: Pyflakes > generates almost 700 warnings. > * `#11566 `__: > irfft/irfft2/irfftn docs are slightly confusing re: input type. > * `#11572 `__: least_squares: > too small tolerances not catched with method='lm' > * `#11581 `__: DOC: > scipy.interpolate.RectSphereBivariateSpline > * `#11586 `__: Differential > evolution breaks with LinearConstraints with sparse... > * `#11595 `__: > scipy.spatial.cKDTree construction slow for some datasets > * `#11598 `__: output of > special.voigt_profile when sigma=0 > * `#11601 `__: linalg tests > failing in runtests.py > * `#11602 `__: > scipy.optimize.linear_sum_assignment returns reverse diagonal... > * `#11610 `__: Analytic > formula for normal moments > * `#11611 `__: Build failure > with gfortran 10 > * `#11613 `__: TST, MAINT: > test_quadpack TestCtypesQuad wasn't fully migrated... > * `#11630 `__: > SmoothBivariateSpline bbox parameter > * `#11635 `__: typo in > docstring of scipy.stats.norminvgauss > * `#11637 `__: BUG: core dumps > when calling scipy.interpolate.interp1d with... > * `#11638 `__: better > documentation for 'return_all' option in minimize(Nelder... > * `#11652 `__: TST, MAINT: CI > failures for pre-release NumPy wheels > * `#11659 `__: > optimize.fmin_l_bfgs_b needs bound check and appropiate error... > * `#11660 `__: BUG/ENH: > distribution.ncf with nc=0 returns nan > * `#11661 `__: > scipy.ndimage.convolve1d and correlate1d don't behave properly... > * `#11669 `__: p-value varies > with the order of the data > * `#11676 `__: documentation > of scipy.spatial.HalfspaceIntersection: wrong method... > * `#11685 `__: Rotation cannot > be expressed as matrix > * `#11686 `__: MAINT: mypy > imports of Cython "modules" > * `#11693 `__: > TestDifferentialEvolutionSolver::test_L4 failing in CI > * `#11696 `__: DOC: incorrect > compiler information for macOS in docs > * `#11709 `__: eigh() tests > fail to pass, crash Python with seemingly ramdom... > * `#11763 `__: Small error in > gamma continuous rv fit comments > * `#11769 `__: truncnorm.rvs > Weird Behaviors > * `#11770 `__: crash in > TestEigh::test_value_subsets > * `#11795 `__: trapz > distribution mean computed using single precision > * `#11800 `__: Segmentation > fault in scipy.odr for multidimensional independent... > * `#11811 `__: pyflakes > silently failing on travis-ci > * `#11826 `__: Error with > _fblas > * `#11827 `__: > \`fft.tests.test_numpy.test_multiprocess\` hangs on Python3.8... > * `#11835 `__: tests with > \`multiprocessing\` hang on Python 3.8 on macOS > * `#11839 `__: linalg.expm > returns nans with RuntimeWarning: overflow encountered... > * `#11856 `__: Documentation > of fit methods for \`weibull_min\` and \`exponweib\`... > * `#11868 `__: Function always > evaluated twice when using HessianUpdateStrategy... > * `#11875 `__: Typo in the > docstring of simps() > * `#11877 `__: kmeans2 '++' > method is orders of magnitude slower than sklearn.cluster.KMeans() > * `#11884 `__: The upper code > lines are dead code > * `#11886 `__: Array shape > mismatch in scipy.optimize > * `#11892 `__: BUG: stats: > Incorrect handling of edges cases by ttest_rel and... > * `#11908 `__: LinearOperator > should have ndim attribute > * `#11910 `__: Documentation > missing for what M is in init argument > * `#11922 `__: macOS actions > CI has started failing in last couple of days. > * `#11928 `__: DOC: signal: > Wrong description for sepfir2d, cspline2d, qspline2d > * `#11944 `__: curve_fit > documentation unclear on default value of absolute_sigma > * `#11945 `__: Add a > (potentially temporary) py.typed file? > * `#11949 `__: ValueError 'k > exceeds matrix dimensions' for sparse.diagonal()... > * `#11951 `__: BUG: asv > benchmark failed because of cython version > * `#11967 `__: BLD: Azure > windows runs complain about drives > * `#11973 `__: > oaconvolve(a,b,'same') differs in shape from convolve(a,b,'same')... > * `#12002 `__: pybind11 > license > * `#12003 `__: MAINT: circular > SphericalVoronoi input > * `#12015 `__: Reordering of > CSC matrix breaks when you go above int32 limits > * `#12031 `__: Documentation > Rendering Issues Visible in CircleCI Artifacts > * `#12037 `__: MAINT, CI: new > Cython 3.0a4 issue > * `#12087 `__: DOC: some odr > models are missing docs > * `#12119 `__: > signal.fftconvolve no longer convolves types f8 and numpy.float64 > * `#12149 `__: Documentation > of Rosenbrock function > * `#12173 `__: Large memory > usage when indexing sparse matrices with \`np.ix_\` > * `#12178 `__: BUG: stats: > Some discrete distributions don't accept lists of... > * `#12220 `__: BUG, REL: > gh_lists.py compromised scraping > * `#12239 `__: BUG: median > absolute deviation handling of nan > * `#12301 `__: integer > overflow in scipy.sparse.sputils.check_shape when matrix size > 2^32 > * `#12314 `__: > scipy.spatial.transform.Rotation multiplication does not normalize > quaternion > > Pull requests for 1.5.0 > ------------------------------ > > * `#6510 `__: Add Eigenvalue > Range Functionality for Symmetric Eigenvalue Problems > * `#9525 `__: BUG: SuperLU > 'NATURAL' order applies a column permutation > * `#9634 `__: Add the number of > Jacobian evaluations to the output of L-BFGS-B. > * `#9719 `__: ENH: Added kstwo > probability distribution for two-sided one-sample... > * `#9783 `__: WIP: optimize: > added (dense) interpolative decomposition redundancy... > * `#10053 `__: Adding docstring > to weibull_min and weibull_max based on issue... > * `#10136 `__: DEP: Add warning > to linprog_verbose_callback > * `#10380 `__: ENH: add > geometric_slerp > * `#10602 `__: MAINT: optimize: > refactor common linprog arguments into namedtuple > * `#10648 `__: Bounds for the > Powell minimization method > * `#10673 `__: ENH: > approx_fprime --> approx_derivative > * `#10759 `__: ENH: calculation > of region areas in spatial.SphericalVoronoi > * `#10762 `__: BENCH: optimize: > more comprehensive linprog benchmarking > * `#10796 `__: ENH exact > p-values of wilcoxon test in scipy.stats > * `#10797 `__: ENH: linalg: LU > with full pivoting (wrappers for ?getc2/?gesc2) > * `#10824 `__: ENH: Fast > gaussian kernel estimator > * `#10942 `__: BUG: prevent > bound violation in L-BFGS-B optimize method > * `#11003 `__: ENH: add > scipy.linalg.convolution_matrix > * `#11023 `__: improving error > message for cubic-interpolate with duplicates > * `#11045 `__: MAINT: make > bdt{r,rc,ri}() functions accept double n,k args +... > * `#11063 `__: Fix documentation > error in optimize.minimize > * `#11069 `__: ENH: > stats.dlaplace.rvs improvements > * `#11071 `__: DOC: Added > examples to maximum_position in ndimage > * `#11075 `__: DOC: Update > stylistic consistency in multiple files > * `#11097 `__: BUG: stats: > fixing chisquare to return correct results for arrays... > * `#11110 `__: ENH: special: > Cythonise erfinv, erfcinv > * `#11112 `__: BUG: special: > Return NaN outside the domain of \`eval_hermite\` > * `#11114 `__: BUG: special: fix > \`hyp1f1\` for nonnegative integral \`a\` and... > * `#11115 `__: DOC: special: add > docstrings for \`kei\`, \`ker\`, \`keip\`,... > * `#11130 `__: ENH: support for > circular input > * `#11136 `__: BUG: expm > handling of empty input > * `#11138 `__: DOC: stylistic > consistency, punctuation, etc. > * `#11139 `__: MAINT: cluster: > use cython_blas, remove handwritten BLAS wrappers > * `#11146 `__: DOC: update docs > on bp parameter for detrend > * `#11151 `__: DOC: special: add > docstrings for \`bei\`, \`ber\`, \`beip\`,... > * `#11156 `__: ENH: add input > validation for ellipord. > * `#11157 `__: DOC: stylistic > revision, punctuation, consistency > * `#11160 `__: ignore warning on > 0 \* inf in basin hopping > * `#11162 `__: DOC: minor > stylistic revision, undo changes > * `#11164 `__: ENH/ BUG: Pydata > sparse equality > * `#11171 `__: Fix dtype > validation of "seuclidean" metric V parameter > * `#11177 `__: BUG: stats: > Improve genpareto stats calculations. > * `#11180 `__: MAINT: stats: > Some clean up in test_distributions.py. > * `#11187 `__: ENH: add > functionality log_softmax to SciPy.special. > * `#11188 `__: MAINT: add rvs > method to argus in scipy.stats > * `#11196 `__: DOC: special: add > to docstrings of Kelvin zeros functions > * `#11202 `__: BUG: fix edge > counting in shortest_path > * `#11218 `__: BUG: > scipy/interpolate: fix PPoly/Cubic\*Spline roots() extrapolation... > * `#11225 `__: Add a warning to > constant input for spearmanr() function > * `#11226 `__: Speed up of > interior-point method for cholesky solver > * `#11229 `__: BUG: Explicit > dtype specification in _upfirdn.py > * `#11230 `__: Additional > citation for optimize tutorial > * `#11231 `__: Adds SLSQP test > for duplicate f-evals (#10738) > * `#11236 `__: MAINT: Improved > error message for Wn range in iirfilter. > * `#11245 `__: ENH: optimize: > dense redundancy removal routine optimizations > * `#11247 `__: MAINT: Remove > _lib/_numpy_compat.py > * `#11248 `__: BUG: > rv_discrete.ppf() to handle loc > * `#11251 `__: DOC: add > reference for linesearch zoom algorithm > * `#11253 `__: BUG: fix > kendalltau issue where p-value becomes >1 > * `#11254 `__: MAINT: make > special.factorial handle nan correctly > * `#11256 `__: DOC: Updated > documentation for scipy.linalg.qr > * `#11265 `__: Fix: Can no > longer slice csr_matrix in 1.3.0 > * `#11267 `__: BUG: Rework the > scaling in the ks_2samp two-sided exact test. > * `#11268 `__: DOC: example of > NonLinearConstraint > * `#11269 `__: Fix: Sparse > matrix constructor data type detection changes on... > * `#11276 `__: BLD: update > minimum Python, NumPy, Cython, Pybind11 versions > * `#11277 `__: MAINT: Cleanup > conditionals for unsupported numpy verisons > * `#11278 `__: MAINT: Cleanup > stats.iqr workarounds for unsupported NumPy versions > * `#11282 `__: TST/CI: improve > traceback formatting for test failures > * `#11284 `__: fix docs & > behavior for mode sequences in ndimage filters > * `#11285 `__: DOC: special: > complete the docstrings of Chi-square functions > * `#11286 `__: BUG: make > loadmat/savemat file opening close resources correctly > * `#11287 `__: CI: skip Azure > and TravisCI builds on merges and direct pushes... > * `#11288 `__: DOC: Fix import > in scipy.io.wavfile.read sample code > * `#11289 `__: BUG: Use context > manager for open > * `#11290 `__: MAINT: Remove > _lib._version in favour of _lib._pep440 > * `#11292 `__: DOC: special: add > docstrings for various convenience functions > * `#11293 `__: DOC: special: fix > typo in \`chdtri\` docstring > * `#11296 `__: DOC: special: add > to docstrings of Bessel zeros and derivatives > * `#11297 `__: DOC: special: add > parameters/returns sections for Bessel integrals > * `#11300 `__: MAINT: Update > vendored uarray version > * `#11301 `__: CI: azure > conditions should require succeeded() > * `#11302 `__: ENH: build > infrastructure for ILP64 BLAS + ARPACK conversion > * `#11303 `__: DOC: special: fix > typo in \`besselpoly\` docstring > * `#11304 `__: ENH: MAINT: > Rewrite of eigh() and relevant wrappers > * `#11306 `__: TST: skip > test_aligned_mem linalg test that is crashing on ppcle64 > * `#11307 `__: MAINT: Fix typo > 'solutuion' -> 'solution' > * `#11308 `__: ENH: do not > create 1d array out of a scalar > * `#11310 `__: MAINT: clean up > object array creation, scalar/1d confusion > * `#11311 `__: DOC: Specify > custom callable option for metric in cluster.hierarchy.fclusterdata > * `#11316 `__: BUG: special: fix > behavior for \`rgamma\` zeros > * `#11317 `__: BUG: fix > floating-point literal comparisons under C99 > * `#11318 `__: TST: optimize: > mark two linprog tests for skipping > * `#11320 `__: BUG: Include > \`int64_t\` declaration to \`rectangular_lsap.cpp\` > * `#11330 `__: MAINT: Update > vendored pypocketfft version > * `#11333 `__: BUG: > directed_hausdorff subset fix > * `#11335 `__: [ENH] sparse: > Loosen check for sparse outer indexing fast path > * `#11337 `__: Undefined name > 'e' in pavement.py > * `#11338 `__: scipyoptdoc.py: > Remove unused variable 'sixu' > * `#11340 `__: xrange() was > removed in Python 3 in favor of range() > * `#11342 `__: range() was > removed in Py3 in _binned_statistic.py > * `#11343 `__: BUG: constants: > fix 'exact' values table > * `#11347 `__: ENH: add input > validation function and apply it to needed functions > * `#11348 `__: MAINT: remove > six.string_types usages > * `#11349 `__: MAINT: minor doc > fix _minimize_trustregion_constr > * `#11353 `__: MAINT: py3 remove > various six usages > * `#11358 `__: ENH: optimize: > Use CSR format instead of LIL for speed > * `#11362 `__: MAINT: > sys.version_info >= 3.5 > * `#11364 `__: ENH: cache square > of sums for f_oneway > * `#11368 `__: ENH: add optional > argument, "include_nyquist", for freqz() > * `#11372 `__: BENCH: optimize: > added linprog presolve benchmarks > * `#11376 `__: ENH: Add wrapper > for ?gttrf/?gttrs > * `#11377 `__: MAINT: Remove > Python 2 code from tools/authors.py > * `#11378 `__: ENH (WIP): Python > wrapper for ?tbtrs > * `#11379 `__: MAINT: Remove > six.with_metaclass from benchmarks/cython_special.py > * `#11380 `__: BUG: > sparse/isolve: bicg and qmr don't treat x0 correctly > * `#11382 `__: MAINT: remove > error throw in binned_statistic_dd() on non-finite... > * `#11383 `__: MAINT: _lib: > remove py2 compat shims in getargspec > * `#11384 `__: MAINT: Use numpy > scalar types directly > * `#11385 `__: ENH: special: add > spherical Bessel functions to \`cython_special\` > * `#11389 `__: MAINT: > line.startswith shouldn't be bytes > * `#11393 `__: ENH: Speed up > truncnorm's ppf()and rvs() methods > * `#11394 `__: MAINT: Remove > self._size (and self._random_state) from stats... > * `#11395 `__: correction in > error message (%d->%g format) > * `#11396 `__: DOC: revert > gh10540, removing mtrand > * `#11397 `__: MAINT: > differential_evolution accepts np.random.Generator > * `#11402 `__: ENH: stats can > use np.random.Generator > * `#11404 `__: ENH: add > docstring of butter() for transfer function syntax problem > * `#11405 `__: DOC: Fix "see > also" for SmoothBivariateSpline > * `#11408 `__: ENH: Add a > \`plan\` argument to FFT functions in \`scipy.fft\` > * `#11411 `__: MAINT: check > minimize duplicate evaluations > * `#11418 `__: ENH: Linalg: > Python wrapper for ?geqrfp > * `#11419 `__: TST: Python 3.7 > mac OS gcc multibuild fix > * `#11423 `__: ENH: Add tool to > lint diffs > * `#11425 `__: FIX: > _array_newton should preserve complex inputs > * `#11426 `__: MAINT: licence > for global optimization benchmarks > * `#11431 `__: Make > median_absolute_deviation scale argument aligned w/iqr > * `#11432 `__: Fix error message > typo > * `#11433 `__: DOC: Remove L > from longs > * `#11434 `__: MAINT: Python3 > improvements to refguide_check.py > * `#11435 `__: DOC: Update > runtest --parallel help > * `#11436 `__: MAINT: Remove > checks for sys.version < 3.5 > * `#11437 `__: DOC: Fix > documentation issue > * `#11439 `__: Support path > objects (PEP 519) in mmio functions > * `#11440 `__: correct bounds > pass in run_dualannealing for benchmarks/optimize.py > * `#11443 `__: BENCH: > optimize_linprog remove ImportError exception > * `#11453 `__: BUG: sparse: > convert csc/csr indices to int64 as needed > * `#11454 `__: DOC: Remove > caveat on \`maximum_bipartite_matching\` > * `#11455 `__: BUG: Fix > _lib._util.getargspec_no_self lack of KEYWORD_ONLY support. > * `#11456 `__: Implementation of > khatri_rao product > * `#11459 `__: BUG: fix > augmentation being broken in maximum_bipartite_matching > * `#11461 `__: MAINT: minor > spelling corrections in comments in SciPy.sparse.linalg.arpack > * `#11467 `__: [MRG] Make result > data type of KDE evaluation like in the input... > * `#11469 `__: Update > integrate.quad documentation > * `#11472 `__: Fixed result typo > * `#11476 `__: DOC: stats: > Copy-edit the anderson docstring. > * `#11478 `__: ENH: avoid > unnecessary array copies in matrix product > * `#11481 `__: BUG: Make > special.hyperu return nan if any argument is nan > * `#11483 `__: BUG: Fixed > \`_kpp\` initialization on \`scipy.cluster.vq\`, closing... > * `#11485 `__: ENH: Update > docstring of class KrylovJacobian to fix #2744 > * `#11486 `__: BUG: make > special.eval_hermite return nan if second argument... > * `#11487 `__: ENH: improve > docstring of correlate and correlate2d to fix #1968 > * `#11488 `__: FIX: change "func > -> fun" of scipy.optimize _root.py to solve... > * `#11489 `__: BUG: fixes typo > introduced in PR #11253 in stats.mstats.kendalltau() > * `#11490 `__: DOC: fix typo in > scipy/io/matlab/mio4.py > * `#11495 `__: MAINT: refactor > slsqp to fix issue in callback function > * `#11498 `__: [DOC] mention > graph cuts in maximum flow docstring > * `#11499 `__: DOC: Improve > documentation of scipy.signal.signaltools.wiener > * `#11506 `__: DOC: Fix typo in > documentation of scipy.stats.morestats > * `#11508 `__: ENH: avoid copy > on sparse __init__ when dtype is given > * `#11509 `__: ENH: avoid > unnecessary array copies in matrix product (again) > * `#11510 `__: [DOC] An ex. for > creating arbitrary size tri-diagonal > * `#11511 `__: TST: pin numba > for Travis/sparse > * `#11513 `__: TST: disable > NumPy cache dir ppc64le > * `#11514 `__: BUG: make > special.eval_genlaguerre return nan if passed nan > * `#11517 `__: ENH: improve > sparse.lil.tocsr performance > * `#11519 `__: Fix fresnel > documentation > * `#11520 `__: BUG: make > special.eval_gegenbauer return nan if passed nan > * `#11524 `__: ENH: Cosine Sine > Decomposition > * `#11526 `__: BUG: fix SLSQP > max iteration setting to fix #4921 > * `#11527 `__: ENH: improve > docstring of weibull_min_gen and weibull_max_gen... > * `#11530 `__: MAINT: Removed 3 > unused imports, 3 unused assignments from ndimage. > * `#11531 `__: DOC: fix typos in > bdtr and bdtrc from gh PR 11045 > * `#11532 `__: MAINT: Fixed > several unused imports and unused assignments from... > * `#11533 `__: MAINT: Fixed > about 100 unused imports, unused assignment warnings... > * `#11534 `__: FIX: Allow > non-native byte order inputs to scipy.fft > * `#11535 `__: MAINT: Fixed > several unused imports in _lib. > * `#11536 `__: MAINT: Fixed > several unused imports and unused assignments in... > * `#11537 `__: MAINT: Removed an > unused import in scipy/constants. > * `#11538 `__: MAINT: Fixed > several unused imports in scipy/fft. > * `#11539 `__: MAINT: Fixed > several unused imports and unused assignments in... > * `#11540 `__: MAINT: Fixed two > unused imports in scipy/misc. > * `#11541 `__: MAINT: Fixed > several unused imports and unused assignments in... > * `#11542 `__: MAINT: Fixed an > unused import in scipy/odr. > * `#11543 `__: MAINT: Fixed > several unused imports and unused assignments in... > * `#11544 `__: MAINT: Fixed > unused imports and unused assignments in scipy/integrate. > * `#11545 `__: MAINT: Removed > unused imports and fixed unused assignments in... > * `#11546 `__: MAINT: Removed > unused imports; fixed unused assignments in scipy/signal. > * `#11547 `__: MAINT: Removed > unused imports; fixed unused assignments in scipy/spatial > * `#11548 `__: MAINT: Removed > unused imports; fixed unused assignments in scipy.sparse. > * `#11549 `__: MAINT: Replace > xrange with range > * `#11560 `__: MAINT: stats: > remove an _argcheck call > * `#11573 `__: MAINT: Removed > unused imports; fixed unused assignments in scipy/stats. > * `#11574 `__: MAINT: Small > change to \`optimize.nnls\` error messages. > * `#11575 `__: MAINT: Update > sytrd/hetrd tests > * `#11582 `__: MAINT: fix typo > in quadpack.py closes #11448 > * `#11585 `__: TST: add > openblas_support.py > * `#11587 `__: BUG: Differential > evolution with LinearConstraint with sparse... > * `#11588 `__: MAINT: Fully > display problem size in lsmr/lsqr. > * `#11589 `__: MAINT: Remove > Python 2 workarounds > * `#11590 `__: MAINT: Remove > Python2 module init > * `#11605 `__: Standardization > of bounds in _linprog_util.py > * `#11608 `__: BUG: fix use of > is in DE callback > * `#11614 `__: TST, MAINT: > TestCtypesQuad skip with pytest > * `#11619 `__: ENH: add > nan_policy argument and functionality to stats.mstats.winsorize > * `#11621 `__: MAINT: Cleanup > uses of PY_VERSION_HEX, NPY_PY3K in ndimage > * `#11622 `__: MAINT: Cleanup > uses of PY_VERSION_HEX, NPY_PY3K in sparse > * `#11623 `__: MAINT: Remove > unnecessary 'from __future__ import ...' statements > * `#11626 `__: MAINT: Cleanup > uses of PY_VERSION_HEX > * `#11627 `__: ENH: add analytic > formula for normal moments > * `#11628 `__: MAINT, TST: > adjust azure for matplotlib release > * `#11631 `__: Revert to old > behaviour for constant cost matrices in \`linear_sum_assignment\` > * `#11632 `__: MAINT: Define > ARRAY_ANYORDER with DEF instead of cdef > * `#11639 `__: BUG: > interpolate/interp1d: fail gracefully on all-nan inputs > * `#11640 `__: MAINT: Fix BLAS3 > trmm wrapper for "side" arg > * `#11642 `__: TST, MAINT: > remove dead code in Travis CI > * `#11643 `__: MAINT: fix > conversion in binom_test > * `#11645 `__: MAINT: Assorted > clean up. > * `#11646 `__: MAINT: Remove > unnecessary 'from __future__ import ...' statements > * `#11647 `__: DOC: document > return_all arguments > * `#11648 `__: Perform geometric > slerp in quaternion space > * `#11651 `__: DOC: Update paper > URL in lambertw documentation > * `#11653 `__: PERF: Switch to > C++ STL std::nth_element > * `#11655 `__: MAINT: Remove > Python2 cStringStream > * `#11657 `__: ENH: Add wrapper > for ?pttrf/?pttrs > * `#11664 `__: ENH: Add wrapper > for ?gejsv > * `#11665 `__: ENH: Add wrapper > for ?pteqr > * `#11667 `__: BUG: Non-central > Fisher distribution (fix nan-values when nc=0) > * `#11668 `__: ENH: Add wrapper > for ?gtsvx > * `#11671 `__: TST, CI: restore > Azure temporarily > * `#11672 `__: Add warning to > medfilt when array size < kernel_size > * `#11674 `__: TST: bump test > precision for two np.dot related linalg tests. > * `#11675 `__: MAINT: > pycodestyle clean-up > * `#11677 `__: ENH: Add wrapper > for ?ptsvx > * `#11679 `__: BENCH: cKDTree > benchmarks added: balanced/unbalanced tree (related... > * `#11680 `__: MAINT: > rng_integers allows RandomState.randint or Generator.integers > * `#11683 `__: BUG: fix > mode='mirror' on length 1 axes > * `#11684 `__: BUG: fix > scipy.special.voigt_profile > * `#11687 `__: MAINT: > sparse.linalg: avoid importing from \`np.core\` > * `#11688 `__: ENH: mypy: get > specific about ignoring missing imports > * `#11690 `__: MAINT: mypy: fix > errors about incompatible types in lists > * `#11692 `__: MAINT: mypy: fix > remaining type errors > * `#11694 `__: TST, MAINT: bump > to OpenBLAS 0.3.9 stable, raise tol for Win... > * `#11697 `__: DOC: fix pdf of > norminvgauss in scipy.stats > * `#11701 `__: MAINT: special: > add rudimentary types for \`_ufuncs\` extension... > * `#11702 `__: BUG: Fixed a > post-merge bug for eigh() > * `#11703 `__: Improves > docstring with consistent L2-norm > * `#11705 `__: DOC: Slerp the > SphericalVoronoi docstring > * `#11706 `__: ENH: mypy: add > \`--mypy\` option to \`runtests.py\` > * `#11710 `__: ENH: Modified > stats.kstest() to use the exact stats.kstwo.sf()... > * `#11715 `__: DOC: add .. > versionadded:: to as_matrix/from_matrix in spatial/transf? > * `#11716 `__: BENCH: fix > benchmark imports for \`\`optimize_linprog.py\`\` > * `#11721 `__: MAINT: io: Remove > now-unnecessary \`# type: ignore\` > * `#11722 `__: MAINT: mypy: > remove mpmath from the ratchet > * `#11726 `__: Handle constant > input for scipy.stats.f_oneway > * `#11729 `__: BENCH: optimize: > added infeasible benchmarks for linprog > * `#11731 `__: fix inaccurate > information about Mac OS compiler (#11696) > * `#11733 `__: Fix inaccurate > docstring example of HalfspaceIntersection > * `#11734 `__: Doc: fix > inaccurate docstring of SmoothBivariateSpline. > * `#11735 `__: Bug: stats: fix > wrong shape from median_absolute_deviation for... > * `#11736 `__: ENH: add input > validations and its tests for FITPACK in fitpack2.py > * `#11737 `__: BUG: Prevent > crashes due to MKL bug in ?heevr > * `#11739 `__: MAINT: special: > add type stubs for \`_test_round.pyx\` > * `#11740 `__: MAINT: special: > remove unused specfun f2py wrappers > * `#11741 `__: BUG: fix small > tolerances handling for minpack and add a test. > * `#11743 `__: Doc: fix > docstring of rfft, rfft2, rfftn, irfft, irfft2, irfftn... > * `#11744 `__: MAINT: Remove > unused py3k.h code > * `#11745 `__: DOC: stats: Clean > up ncf documentation. > * `#11748 `__: MAINT: special: > type \`cython_special\` as \`Any\` > * `#11750 `__: MAINT: type hints > for \`_spherical_voronoi\` > * `#11752 `__: DOC: fix > docstring of scipy.optimize.least_squares > * `#11753 `__: ENH: add input > validation for dendrogram and a test. > * `#11755 `__: MAINT: Replace > uses of tostring with tobytes > * `#11757 `__: ENH: improve > binned_statistics_2d performance. > * `#11759 `__: ENH: optimize: > add HiGHS methods to linprog > * `#11760 `__: MAINT: Remove > FileStream replaced by GenericStream > * `#11761 `__: MAINT: Replace > npy_3kcompat.h shims > * `#11765 `__: TST: Speedup > test_pascal which is VERY slow on Azure > * `#11766 `__: TST: speed up > differential_evolution L8 test > * `#11767 `__: Change comment in > continuous rv gamma fit function > * `#11776 `__: Add domain option > for resample. > * `#11784 `__: BUG: Fixed > calculation of nonzero elements in scipy.sparse.random > * `#11786 `__: ENH: stats: add > axis keyword argument to scipy.stats.rankdata > * `#11789 `__: Doc: fix > docstring of scipy.spatial.chebyshev > * `#11792 `__: DOC: dev: add > guidelines for developing public Cython APIs > * `#11794 `__: MAINT: add > comments explaining a problem in cython_optimize organization > * `#11796 `__: DOC: add a note > about precision losing in csgraph.minimum_spanning_tree... > * `#11797 `__: ENH: Allow > negative \`axis\` in \`interpolate.BSpline\`. Also... > * `#11798 `__: Add > simplify_cells parameter to scipy.io.loadmat > * `#11801 `__: MAINT, DOC: minor > changes of ratio-of-uniforms in scipy.stats > * `#11802 `__: BUG: fix > scipy.odr to handle multidimensional independent and... > * `#11803 `__: > scipy.stats.trapz: Use analytic formulas for stats and entropy. > * `#11808 `__: DOC: add Examples > in the scipy.interpolate.interpn docstring. > * `#11809 `__: Duplicate entries > are added together in csr_matrix constructor > * `#11813 `__: MAINT: bump > pyflakes to version 2.1.1 > * `#11814 `__: BUG: > scipy.sparse.csr doctest failing with incorrect output value > * `#11817 `__: DOC: add Examples > in the scipy.optimize.leastsq docstring > * `#11820 `__: ENH: Raise an > error on incorrect bounds format in optimize.fmin_l_bfgs_b > * `#11822 `__: CI: add github > actions for macOS > * `#11824 `__: DOC: add Examples > in scipy.optimize.line_search docstring (line_search_wolfe2) > * `#11830 `__: TST: Always use > fork for multiprocessing in fft tests > * `#11831 `__: DOC: add Examples > and Returns in scipy.misc.central_diff_weights... > * `#11832 `__: DOC: stats: Some > small corrections to a couple docstrings. > * `#11833 `__: BUG: Fix > compiler_name when there are paths used in flags > * `#11836 `__: MAINT: > re-introduce multiprocessing tests on Python3.8 > * `#11837 `__: Doc: add Examples > in scipy.optimize.fsolve docstring > * `#11838 `__: Doc: add Examples > in scipy.sparse.linalg.minres docstring > * `#11840 `__: BUG: > sparse.linalg: fix overflow in expm intermediate computation > * `#11842 `__: BLD: fix build > with gfortran 10 > * `#11843 `__: MAINT: Simplify > floats in constants.py > * `#11847 `__: DOC: add a > tutorial of scipy.optimize.linprog > * `#11849 `__: ENH: speed up > geninvgauss by using cython > * `#11852 `__: CI: remove osx > from travisCI > * `#11857 `__: BUG: Change > parameter fc of gausspulse to float. > * `#11861 `__: order = degree + > 1 for splines > * `#11863 `__: Make g77 ABI > wrapper work with gfortran ABI lapack > * `#11866 `__: MAINT: add type > ignores to sympy and matplotlib imports > * `#11867 `__: CI: Add arm64 in > travis-ci > * `#11869 `__: DOC: signal: Add > an example to the lsim2 docstring. > * `#11870 `__: DOC: signal: Use > impulse instead of impulse2 in the impulse example... > * `#11871 `__: ENH: type ufuncs > in special as ufuncs instead of Any > * `#11872 `__: BUG: avoid > recomputing in scipy.optimize.optimize.MemoizeJac > * `#11873 `__: DOC: signal: Fix > ODE in impulse and impulse2 docstrings. > * `#11874 `__: DOC: add Examples > of docstring for scipy.interpolate.approximate_taylor_polynomial > * `#11878 `__: DOC: fixed a typo > under scipy/integrate/quadrature.py > * `#11879 `__: BUG: Fix index > arrays overflow in sparse.kron > * `#11880 `__: DOC: stats: Add > Examples for bartlett, fligner, levene. > * `#11881 `__: MAINT: normalise > numpy-->np in optimize.py > * `#11882 `__: DOC: add Examples > for scipy.io.readsav docstring. > * `#11883 `__: DOC: add Returns > and Examples for scipy.ndimage.correlate() docstring > * `#11885 `__: BUG: stats: > Handle multidimensional arrays in f_oneway, and more. > * `#11889 `__: DOC: signal: > Unify lsim and lsim2 examples. > * `#11896 `__: BUG: stats: Fix > handling of size 0 inputs for ttest_rel and ttest_ind. > * `#11897 `__: DOC: Remove > misleading default values from fit method > * `#11898 `__: MAINT: > LinearVectorFunction.J is ndarray closes #11886 > * `#11902 `__: BUG: linalg: > test_heequb failure > * `#11904 `__: fix real-to-real > transforms for complex inputs and overwrite_x=True > * `#11906 `__: DOC: stats: fix > error caused by trapz docstring > * `#11907 `__: BUG: stats: fixed > SEGFAULT from Issue #9710 > * `#11912 `__: ENH: Respect > matplotlib color palette with hierarchy/dendrogram. > * `#11914 `__: DOC: refine doc > for spatial.distance.squareform > * `#11915 `__: ENH: Ndim linear > operator > * `#11919 `__: ENH: expose > "window_size" parameter in find_peaks_cwt() > * `#11920 `__: DOC: explain M, > diffev > * `#11923 `__: CI: macOS install > swig closes #11922 > * `#11924 `__: DOC: add Examples > for scipy.optimize.bracket() docstring > * `#11930 `__: DOC: add Examples > and clean up for signal.qspline1d and signal.qspline_eval... > * `#11931 `__: DOC: add Examples > for sparse.linalg.bicg docstring. > * `#11933 `__: DOC: Add original > reference for Yao-Liu objective functions > * `#11934 `__: DOC, MAINT: > mailmap update > * `#11935 `__: DOC: make > scipy.stats.mode documentation reflect that the function... > * `#11936 `__: ENH: special: add > type stubs for \`orthogonal.py\` > * `#11937 `__: DOC: Add > docstring examples to fft2, ifft2, io.savemat > * `#11938 `__: MAINT: add helper > function for deprecating Cython API functions > * `#11942 `__: MAINT: ignore > conditional import in _lib/_util > * `#11943 `__: MAINT: special: > add types for geterr/seterr/errstate > * `#11946 `__: MAINT: add > py.typed marker > * `#11950 `__: TST:MAINT: > separated and stabilized heequb tests > * `#11952 `__: DOC: update > toolchain roadmap for py38, C99, C++11/14 > * `#11957 `__: MAINT: Use > np.errstate context manager instead of np.seterr. > * `#11958 `__: MAINT: > interpolate: Remove some trailing spaces. > * `#11960 `__: MAINT: Cleanup > Python2 compatibility code > * `#11961 `__: MAINT: Remove > numpy/npy_3kcompat.h from _superluobject.c > * `#11962 `__: DOC: Fix type of > \`codes\` in docstring of \`_vq._vq()\` > * `#11964 `__: MAINT: Cleanup > unused IS_PYPY > * `#11969 `__: DOC: add Examples > and fix docstring for special.airye > * `#11970 `__: BUG: sparse: > 'diagonal' of sparse matrices fixed to match numpy's... > * `#11974 `__: BUG: Reshape > oaconvolve output even when no axes are convolved > * `#11976 `__: MAINT: add logo > for github actions > * `#11977 `__: CI: test bleeding > edge Python > * `#11979 `__: DOC: add Examples > for stats.ranksums() docstring. > * `#11982 `__: Fix KMeans++ > initialisation slowness > * `#11983 `__: DOC: add Examples > for stats.mstats.argstoarray() docstring. > * `#11986 `__: Avoid bugs in > ndimage when the output and input arrays overlap... > * `#11988 `__: ENH: Override fit > method of Laplace distribution with Maximum... > * `#11993 `__: TST, CI: Azure > Windows path fixups > * `#11995 `__: MAINT, CI: remove > custom mingw Azure > * `#11996 `__: DOC: add Examples > and fix pep warning for fft.set_global_backend... > * `#11997 `__: MAINT, CI: Azure > OpenBLAS simplify > * `#11998 `__: BENCH: Run > against current HEAD instead of master > * `#12001 `__: ENH: stats: > Implement _logpdf for the maxwell distribution. > * `#12004 `__: DOC: add examples > for integrate.quad_vec() and integrate.quad_explain() > * `#12005 `__: MAINT: Use helper > functions in ?tbtrs tests > * `#12007 `__: MAINT: updated > LICENSES_bundled for pybind11 and six > * `#12008 `__: DOC: roadmap > update > * `#12009 `__: ENH: optimize: > support 64-bit BLAS in lbfgsb > * `#12010 `__: ENH: > sparse.linalg: support 64-bit BLAS in isolve > * `#12012 `__: DOC: add Examples > for interpolate.barycentric_interpolate(),... > * `#12013 `__: MAINT: remove > last uses of numpy.dual > * `#12014 `__: CI: print 10 > slowest tests > * `#12020 `__: MAINT: Removed > handling of circular input in SphericalVoronoi > * `#12022 `__: DOC : added > default value of absolute_sigma to False in scipy.optimize.curve_fit docs > * `#12024 `__: DOC: add Examples > for io.hb_read() and io.hb_write() > * `#12025 `__: MAINT: Remove > numpy/npy_3kcompat.h from nd_image > * `#12028 `__: Spelling > correction > * `#12030 `__: ENH: > optimize/_trlib: support ILP64 blas/lapack > * `#12036 `__: MAINT: Add some > generated C files .gitignore > * `#12038 `__: MAINT, CI: Travis > rackcdn->conda.org > * `#12039 `__: MAINT: signal: > Lower the resolution of the plots in the chirp... > * `#12040 `__: DOC: add Examples > for ndimage.spline_filter1d() and spline_filter()... > * `#12044 `__: MAINT: combine > apt-get update and apt-get install into one RUN > * `#12045 `__: TST: Reduce size > of test_diagonal_types to speed up tests > * `#12046 `__: MAINT: Remove > unused npy_3kcompat.h > * `#12047 `__: MAINT: Cython 3.0 > compat > * `#12050 `__: DOC: add download > number badges of PyPI and conda-forge in README.rst > * `#12052 `__: DOC: add Examples > odr.models.polynomial() and fix odr.odr docstring... > * `#12056 `__: ENH: Modifies > shapiro to return a named tuple > * `#12057 `__: Adding my name > into THANKS.txt > * `#12060 `__: TST: Reduce > number of test_diagonal_types configs > * `#12062 `__: TST: Change > dec.slow to pytest.mark.slow > * `#12068 `__: ENH: Modifies > jarque_bera to return a named tuple > * `#12070 `__: MAINT, CI: > appveyor rack->conda.org > * `#12072 `__: TST: filter out > factorial(float) deprecation warning > * `#12078 `__: TST: Skip test on > colab with large memory alloc > * `#12079 `__: DOC: Remove > Python2 reference from stats tutorial > * `#12081 `__: DOC: add Examples > docstring for optimize.show_options() > * `#12084 `__: BUG: interpolate: > fix BarycentricInterpolator with integer input... > * `#12089 `__: ENH: > spatial/qhull: support ILP64 Lapack > * `#12090 `__: ENH: integrate: > support ILP64 BLAS in odeint/vode/lsoda > * `#12091 `__: ENH: integrate: > support ILP64 in quadpack > * `#12092 `__: BUG: Fix dropping > dt in signal.StateSpace > * `#12093 `__: MAINT: Rollback > python2.6 workaround > * `#12094 `__: MAINT: > \`openblas_support\` hash checks > * `#12095 `__: MAINT: ndimage: > change \`shares_memory\` to \`may_share_memory\` > * `#12098 `__: Doc: change 4 > model instances of odr to be instances of \`Model\`... > * `#12101 `__: Removed more > unused imports and assignments. > * `#12107 `__: ENH: Area > calculation for 2D inputs in SphericalVoronoi > * `#12108 `__: MAINT: ensure > attributes have correct data type in \`SphericalVoronoi\` > * `#12109 `__: degree is not > order in splines > * `#12110 `__: ENH: More > helpful/forgiving io.wavfile errors > * `#12117 `__: BUG: fix newline > * `#12123 `__: [MAINT] Fix error > on PyData/Sparse import. > * `#12124 `__: TST: Always test > matmul now that Python3.5+ is required > * `#12126 `__: TST: Cleanup > unused matplotlib code. > * `#12127 `__: DOC: update > docstrings of signal.cspline2d, qspline2d, sepfir2d > * `#12130 `__: MAINT: Fixing > broken links with linkchecker > * `#12135 `__: ENH: linalg: Add > the function convolution_matrix. > * `#12136 `__: MAINT: Cleanup > np.poly1d hack > * `#12137 `__: TST, CI: > reproduce wheels 32-bit setup > * `#12140 `__: TST: stats: add > kstwo, ksone to slow tests. > * `#12141 `__: Support 64-bit > integer size in Fitpack > * `#12151 `__: DOC: Correct > Rosenbrock function sum > * `#12159 `__: BUG: Fix length > calculation in upfirdn > * `#12160 `__: BUG: Fix M_PI > * `#12168 `__: DOC: add an > obsolete version checking javascript to doc release... > * `#12171 `__: CI, MAINT: Azure > OpenBLAS drive flip > * `#12172 `__: ENH: Bounds for > the Powell minimization method > * `#12175 `__: BLD: support more > Fortran compilers for ilp64 and macro expansion... > * `#12179 `__: BUG: stats: A few > distributions didn't accept lists as arguments. > * `#12180 `__: MAINT: removed > redundant import in SphericalVoronoi tests > * `#12181 `__: DOC: for > versionwarning don't use $.getScript > * `#12182 `__: MAINT: random > sampling on the hypersphere in SphericalVoronoi... > * `#12194 `__: MAINT: Module and > example cleanups for doc build > * `#12202 `__: ENH: tool to DL > release wheels from Anaconda > * `#12210 `__: Remove py.typed > marker (at least for the release) > * `#12217 `__: BUG: stats: Fix > handling of edge cases in median_abs_deviation. > * `#12223 `__: BUG: stats: > wilcoxon returned p > 1 for certain inputs. > * `#12227 `__: BLD: Set macos > min version when building rectangular_lsap > * `#12229 `__: MAINT: > tools/gh_lists.py: fix http header case sensitivity issue > * `#12236 `__: DOC: Fix a couple > grammatical mistakes in 1.5.0-notes.rst. > * `#12276 `__: TST: skip > `test_heequb`, it fails intermittently. > * `#12285 `__: CI: split travis > arm64 run into two > * `#12317 `__: BUG: prevent > error accumulation in `Rotation` multiplication > * `#12318 `__: BUG: sparse: > avoid np.prod overflow in check_shape > * `#12319 `__: BUG: Make cobyla > threadsafe > * `#12335 `__: MAINT: Work > around Sphinx bug > > > Checksums > ========= > > MD5 > ~~~ > > 6b67c3cdb5fd7ec7f65445ce5432c2d3 > scipy-1.5.0-cp36-cp36m-macosx_10_9_x86_64.whl > cb1c6b8022891ef2644caf26f6d6d0f2 > scipy-1.5.0-cp36-cp36m-manylinux1_i686.whl > 28a26064ae38b16c370be9691d0be2de > scipy-1.5.0-cp36-cp36m-manylinux1_x86_64.whl > 1a8324e7940ab7c405e534823a33872f scipy-1.5.0-cp36-cp36m-win32.whl > 241c63762ae6e903b06c2498f5fef5d9 scipy-1.5.0-cp36-cp36m-win_amd64.whl > c9642dfdc834dfc73b83fce7a05c6101 > scipy-1.5.0-cp37-cp37m-macosx_10_9_x86_64.whl > 30ec965fac402610192ff67428848f74 > scipy-1.5.0-cp37-cp37m-manylinux1_i686.whl > 46c7068c7cf789777ec4423b2ff83f5f > scipy-1.5.0-cp37-cp37m-manylinux1_x86_64.whl > 21a5d8636489c065ce84fcba238c0c32 scipy-1.5.0-cp37-cp37m-win32.whl > cd0429315d501470b5bb732d23fddf9d scipy-1.5.0-cp37-cp37m-win_amd64.whl > 99a35969fdd5329436f679e02c23f185 > scipy-1.5.0-cp38-cp38-macosx_10_9_x86_64.whl > 721abc2147746de50e639832c54d1c0a scipy-1.5.0-cp38-cp38-manylinux1_i686.whl > c51a2faadfda7bc56e1492218f9d044c > scipy-1.5.0-cp38-cp38-manylinux1_x86_64.whl > 8f70224a6b8fb8e55cff52c83df30663 scipy-1.5.0-cp38-cp38-win32.whl > 8e0c33036795485d14c6221d00cacb9e scipy-1.5.0-cp38-cp38-win_amd64.whl > 4b0fc5a2eae9764c302187af4fad975f scipy-1.5.0.tar.gz > 4157e49b7a0ba3c74b9df6df90d43245 scipy-1.5.0.tar.xz > a14f9de5ed51eb23c8dfa739ec4f50ff scipy-1.5.0.zip > > SHA256 > ~~~~~~ > > 8f354e92246de33c44ddfc5fef61bce8c19d5aeeb2130b6a672b15db619453e4 > scipy-1.5.0-cp36-cp36m-macosx_10_9_x86_64.whl > 244b4a23a8cb6707e19f5579502112954659bb983852b1c381243fe46d9b6818 > scipy-1.5.0-cp36-cp36m-manylinux1_i686.whl > d266d955c3fd12336c948abb368de230bf8dc20efad428abb908165d9c87f53f > scipy-1.5.0-cp36-cp36m-manylinux1_x86_64.whl > 11d8bfcea08e971968d07495bdf1de37b3b1bb5ca78e4ddbe8d60791f0456942 > scipy-1.5.0-cp36-cp36m-win32.whl > eb48915142f2dbd4b84df8ca66e433946df1a13eff36015c2b7843aa39dbc30d > scipy-1.5.0-cp36-cp36m-win_amd64.whl > ae24f16056c87e7f086a56a7aaf6e65e4626ac70b7e08d7f54e078693abcf778 > scipy-1.5.0-cp37-cp37m-macosx_10_9_x86_64.whl > 1b23129e9838694c36475b296ac251ae0b0247455352f2bed0b246c30b61c822 > scipy-1.5.0-cp37-cp37m-manylinux1_i686.whl > 69eb6245ff472db406c3e9b3e13bd0dc6e2ff48e7e758a7bfca296ecdb1ae8b9 > scipy-1.5.0-cp37-cp37m-manylinux1_x86_64.whl > 38cdb4eafe727b324f295ab69eaa0788a8eefe08d59360968928753ab7f68ba9 > scipy-1.5.0-cp37-cp37m-win32.whl > f662ad49ef930325161bd5edac39932c3f1b55547eaa0afce08367522f6314df > scipy-1.5.0-cp37-cp37m-win_amd64.whl > 40969696eb13c2f1b6fc8e99ce597a47627f0167a7feb6086c2ccdfb55835cfc > scipy-1.5.0-cp38-cp38-macosx_10_9_x86_64.whl > 0f62f3be924a4314cf2384c6f77d3a0e3bf4ada370530a7d0a6d5a61192bec9e > scipy-1.5.0-cp38-cp38-manylinux1_i686.whl > 4e1a790fdf82a67619a38f017105df4bb66dfcdaea45df793ece27fd534720c2 > scipy-1.5.0-cp38-cp38-manylinux1_x86_64.whl > 2e99f50d0061c385f8f46c5a99bb07ad013ec2dcf95ccba3be4e081594e7ab19 > scipy-1.5.0-cp38-cp38-win32.whl > 2aec0f81a29440e0c000222ac0447748a840d328b5698dd900ece4113bca5cde > scipy-1.5.0-cp38-cp38-win_amd64.whl > 4ff72877d19b295ee7f7727615ea8238f2d59159df0bdd98f91754be4a2767f0 > scipy-1.5.0.tar.gz > 23baeaa18803d12d1abdff3f5c148b1085c2dc4028c6b8efce652dde2119b41c > scipy-1.5.0.tar.xz > 92b17f65c2521a48e1853cbc6b1038140f38393ce6293bbdba6e99a7653d8063 > scipy-1.5.0.zip > From shashaank.n at columbia.edu Mon Jun 22 21:24:57 2020 From: shashaank.n at columbia.edu (Shashaank N) Date: Mon, 22 Jun 2020 21:24:57 -0400 Subject: [SciPy-Dev] Merging firwin and firwin2 in scipy.signal In-Reply-To: References: Message-ID: Right now, the main difference between the two functions is in how the coefficients are computed: firwin multiplies the sinc function on the cutoff frequency bands, while firwin2 linearly interpolates the cutoff frequencies with a uniform mesh. If we can define a flag that switches between the two calculation methods, then we can preserve the functionality of both. I took a similar approach recently to switch between FIR and IIR filter coefficients when implementing gammatone filters for SciPy. Parameter-wise, I think we can keep the gain, nfreqs, and antisymmetric parameters from firwin2, and remove the scale parameter from firwin. However, we might have to internally match the coefficients' order of magnitude inside the function, as firwin returns values in the 10e-4 range with scale set to True, while firwin2 returns values in the 10e-2 range. Both functions have the nyquist frequency parameter marked as "deprecated" in the docstring, but they don't throw a warning in the code. Can we add this warning to the function? - Shashaank On Fri, Jun 19, 2020 at 11:09 AM Warren Weckesser < warren.weckesser at gmail.com> wrote: > On 6/16/20, Shashaank N wrote: > > Hi, > > > > I was looking at the detailed SciPy roadmap, and one of the improvements > in > > scipy.signal is "merging firwin and firwin2 so firwin2 can be removed." > If > > there is still interest in this, I can work on it. > > > Yes, there is still interest! Before working on any code, we need to > agree on the API changes that will be needed to make this happen. The > updated API needs to provide (roughly) equivalent functionality as > that currently provided by firwin and firwin2. We also need to > maintain backwards compatibility. I haven't looked at these in a > long time--maybe the API changes will be simple, and we can start > looking at implementations pretty quickly. > > If anyone already has ideas on this, let us know. > > Warren > > > > > > > > Thanks, > > Shashaank > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From wsw.raczek at gmail.com Thu Jun 25 09:53:58 2020 From: wsw.raczek at gmail.com (=?UTF-8?B?V8WCYWR5c8WCYXcgUmFjemVr?=) Date: Thu, 25 Jun 2020 15:53:58 +0200 Subject: [SciPy-Dev] Pending PR - custom leaves ordering for dendrogram Message-ID: Hi everybody, I've opened a PR roughly a month and a half ago, and I consider it to be done (at least based on the discussion in comments), but it's been about three weeks that the discussion looks frozen. Maybe someone is interested and would have a look at it - I would be very grateful! https://github.com/scipy/scipy/pull/12049 Kind regards, Vladyslav Rachek -------------- next part -------------- An HTML attachment was scrubbed... URL: From sebastian at sipsolutions.net Sat Jun 27 10:19:24 2020 From: sebastian at sipsolutions.net (Sebastian Berg) Date: Sat, 27 Jun 2020 09:19:24 -0500 Subject: [SciPy-Dev] New normalization option/kwarg for fft normalization Message-ID: <55c7166d9658e9e5da1ba82b0341e7b81e642260.camel@sipsolutions.net> Hi all, on the NumPy mailing list (and PR) it came up that CuPy would like to the normalization in FFTs in the opposite way as the defaults. This is for technical reasons on the GPU, but we need to add a new `norm="something"` mode for it. And CuPy, numpy, and scipy should all be happy with the choice. The current favorits are: * "forward" ("backward" could be added to be identical to default) * "reversed" * "inverse" Currently, we scale the *inverse* transformation, instead of the direct transformation. A nice property of the `norm` kwarg is that round- tripping is defined if used always the same: x ~= ifft(fft(x, norm=...), norm=...) (assuming the lengths are good). So that disabling normalization entirely loses the property. If I read it correctly, "forward" is currently the crowd-favorite, and we will probably go ahead with something in a few days. But alternative proposals or opinions on which to choose are very welcome! Cheers, Sebastian -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 833 bytes Desc: This is a digitally signed message part URL: From ilhanpolat at gmail.com Sat Jun 27 11:47:54 2020 From: ilhanpolat at gmail.com (Ilhan Polat) Date: Sat, 27 Jun 2020 17:47:54 +0200 Subject: [SciPy-Dev] New normalization option/kwarg for fft normalization In-Reply-To: <55c7166d9658e9e5da1ba82b0341e7b81e642260.camel@sipsolutions.net> References: <55c7166d9658e9e5da1ba82b0341e7b81e642260.camel@sipsolutions.net> Message-ID: I am not sure if I understand it correctly but why do they have to be about the virtual direction of the transform. This might not be the canonical way but reads quite nice to my subjective opinion. fft(x, norm="by_N") fft(x, norm="by_sqrt_N") fft(x, norm=None) # Can even be "by_1" if OCD kicks in ifft(x, norm="by_n") # just to place examples with small n ifft(x, norm="by_sqrt_n") ifft(x, norm=None) Obviously, I'm assuming that these options are not typed every two minutes during the day. But then probably you have bigger problems than this. Unrelated : This naming always ignites questions from people I'm teaching or assisting with FFTs. "norm" is already a well-defined concept applicable to any vector-concept. "normalize" is also a well-defined concept specific to FFTs. Calling it "norm" would not have been my option. Saving 5 characters doesn't justify the confusion in my opinion. But anyways just wanted to mention in case any deprecation is on the horizon. But of course the ship has sailed long ago. On Sat, Jun 27, 2020 at 4:20 PM Sebastian Berg wrote: > Hi all, > > on the NumPy mailing list (and PR) it came up that CuPy would like to > the normalization in FFTs in the opposite way as the defaults. This is > for technical reasons on the GPU, but we need to add a new > `norm="something"` mode for it. And CuPy, numpy, and scipy should all > be happy with the choice. > > The current favorits are: > > * "forward" ("backward" could be added to be identical to default) > * "reversed" > * "inverse" > > Currently, we scale the *inverse* transformation, instead of the direct > transformation. A nice property of the `norm` kwarg is that round- > tripping is defined if used always the same: > > x ~= ifft(fft(x, norm=...), norm=...) > > (assuming the lengths are good). So that disabling normalization > entirely loses the property. > > If I read it correctly, "forward" is currently the crowd-favorite, and > we will probably go ahead with something in a few days. But > alternative proposals or opinions on which to choose are very welcome! > > Cheers, > > Sebastian > _______________________________________________ > SciPy-Dev mailing list > SciPy-Dev at python.org > https://mail.python.org/mailman/listinfo/scipy-dev > -------------- next part -------------- An HTML attachment was scrubbed... URL: From sebastian at sipsolutions.net Sat Jun 27 13:37:32 2020 From: sebastian at sipsolutions.net (Sebastian Berg) Date: Sat, 27 Jun 2020 12:37:32 -0500 Subject: [SciPy-Dev] New normalization option/kwarg for fft normalization In-Reply-To: References: <55c7166d9658e9e5da1ba82b0341e7b81e642260.camel@sipsolutions.net> Message-ID: <6ee9029386710e6c6d980ad7c5555e428e4ec7d5.camel@sipsolutions.net> On Sat, 2020-06-27 at 17:47 +0200, Ilhan Polat wrote: > I am not sure if I understand it correctly but why do they have to be > about > the virtual direction of the transform. This might not be the > canonical way > but reads quite nice to my subjective opinion. I confess the direction notion confused me at first, it requires the step of realizing that this is about the pair of fft/ifft. OTOH, I am not if custom norm(alize) is actually used mainly in a context where you do both transforms. On small argument against the "by_n" approach is that both `"ortho"` and `None` use the directional notion already implicitly. Since below you would need the `ifft(x, norm="by_1")` to achieve the desired effect here as None will normalize the `ifft` by default. So using `by_n` or similar, works well, but may make a call without `norm` slightly more confusing (you may expect no normalization at all on the `ifft`)? Not sure its a big argument, though... - Sebastian > > fft(x, norm="by_N") > fft(x, norm="by_sqrt_N") > fft(x, norm=None) # Can even be "by_1" if OCD kicks in > > ifft(x, norm="by_n") # just to place examples with small n > ifft(x, norm="by_sqrt_n") > ifft(x, norm=None) > > Obviously, I'm assuming that these options are not typed every > twominutes > during the day. But then probably you have bigger problems than this. > > Unrelated : This naming always ignites questions from people I'm > teaching > or assisting with FFTs. "norm" is already a well-defined concept > applicable > to any vector-concept. "normalize" is also a well-defined concept > specific > to FFTs. Calling it "norm" would not have been my option. Saving 5 > characters doesn't justify the confusion in my opinion. But anyways > just > wanted to mention in case any deprecation is on the horizon. But of > course > the ship has sailed long ago. > Indeed, can't say I disagree, but likely not worth the the confusion of switching/having two options. - Sebastian > > On Sat, Jun 27, 2020 at 4:20 PM Sebastian Berg < > sebastian at sipsolutions.net> > wrote: > > > Hi all, > > > > on the NumPy mailing list (and PR) it came up that CuPy would like > > to > > the normalization in FFTs in the opposite way as the > > defaults. This is > > for technical reasons on the GPU, but we need to add a new > > `norm="something"` mode for it. And CuPy, numpy, and scipy should > > all > > be happy with the choice. > > > > The current favorits are: > > > > * "forward" ("backward" could be added to be identical to > > default) > > * "reversed" > > * "inverse" > > > > Currently, we scale the *inverse* transformation, instead of the > > direct > > transformation. A nice property of the `norm` kwarg is that round- > > tripping is defined if used always the same: > > > > x ~= ifft(fft(x, norm=...), norm=...) > > > > (assuming the lengths are good). So that disabling normalization > > entirely loses the property. > > > > If I read it correctly, "forward" is currently the crowd-favorite, > > and > > we will probably go ahead with something in a few days. But > > alternative proposals or opinions on which to choose are very > > welcome! > > > > Cheers, > > > > Sebastian > > _______________________________________________ > > SciPy-Dev mailing list > > SciPy-Dev at python.org > > https://mail.python.org/mailman/listinfo/scipy-dev > > > > _______________________________________________ > SciPy-Dev mailing list > SciPy-Dev at python.org > https://mail.python.org/mailman/listinfo/scipy-dev -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 833 bytes Desc: This is a digitally signed message part URL: From larson.eric.d at gmail.com Sun Jun 28 19:32:57 2020 From: larson.eric.d at gmail.com (Eric Larson) Date: Sun, 28 Jun 2020 19:32:57 -0400 Subject: [SciPy-Dev] New normalization option/kwarg for fft normalization In-Reply-To: <6ee9029386710e6c6d980ad7c5555e428e4ec7d5.camel@sipsolutions.net> References: <55c7166d9658e9e5da1ba82b0341e7b81e642260.camel@sipsolutions.net> <6ee9029386710e6c6d980ad7c5555e428e4ec7d5.camel@sipsolutions.net> Message-ID: > On small argument against the "by_n" approach is that both `"ortho"` > and `None` use the directional notion already implicitly. Since below > you would need the `ifft(x, norm="by_1")` to achieve the desired effect > here as None will normalize the `ifft` by default. > One option would be to change the default None to an alias "inverse" to make it clearer. This could be done without a deprecation cycle. So using `by_n` or similar, works well, but may make a call without > `norm` slightly more confusing (you may expect no normalization at all > on the `ifft`)? Not sure its a big argument, though... > To me the least ambiguous naming are: 1. Related to the transforms themselves, as these have the most clearly understood usage and naming for most people in most FFT/IFFT contexts that I've seen; and 2. Can be passed to both functions the same way to achieve round-trip equality (i.e., np.allclose(ifft(fft(x,norm=norm),norm=norm),x)). People who want to do something weird like no normalization in either direction are not the ones that I think should be prioritized here, as they are the exception and not the rule (far rarer I'd expect). So I'd prefer that the naming reflect the generally desirable round-trip equality. This makes it easiest for people working with FFT and IFFT pairs (or even using FFT and thinking about Parseval's relation of the resulting frequency-domain data) to understand what's going on. For example this is a pretty clear docstring to me (as is NumPy's current one ): norm : {'forward', 'inverse', 'ortho', None} The normalization to apply during the FFT or IFFT, each of which will ensure round-trip numerical equivalence when the same value is passed to both forward and inverse transform functions: - "inverse" (default; same as None) will apply full normalization only during the IFFT (1/N); this follows the standard definition of the discrete Fourier transform and its inverse. - "forward" will apply full normalization only during the FFT (1/N). - "ortho" will apply half the normalization during the FFT and the IFFT (1/sqrt(N)), thereby ortho-normalizing the bases. One could argue that "ortho" could equivalently be "split" or "half" or something, but it already seems clear enough about what it will do (and even why it's potentially useful). My 2c, Eric -------------- next part -------------- An HTML attachment was scrubbed... URL: From ilhanpolat at gmail.com Sun Jun 28 22:49:48 2020 From: ilhanpolat at gmail.com (Ilhan Polat) Date: Mon, 29 Jun 2020 04:49:48 +0200 Subject: [SciPy-Dev] New normalization option/kwarg for fft normalization In-Reply-To: References: <55c7166d9658e9e5da1ba82b0341e7b81e642260.camel@sipsolutions.net> <6ee9029386710e6c6d980ad7c5555e428e4ec7d5.camel@sipsolutions.net> Message-ID: I am a bit suspicious of the need for round-trip-equality for the majority of the users. For one, I hardly ever used them as a pair for the same object. So this idempotent requirement seems a bit of an occupational hazard to me. All users that will perform a one-way transform and be done with it, are now going to be thinking about a direction that they have nothing to do with. I don't see why IFFT comes into play in the docstring of FFT. These are exclusively separate transformations. On Mon, Jun 29, 2020 at 1:34 AM Eric Larson wrote: > > >> On small argument against the "by_n" approach is that both `"ortho"` >> and `None` use the directional notion already implicitly. Since below >> you would need the `ifft(x, norm="by_1")` to achieve the desired effect >> here as None will normalize the `ifft` by default. >> > > One option would be to change the default None to an alias "inverse" to > make it clearer. This could be done without a deprecation cycle. > > So using `by_n` or similar, works well, but may make a call without >> `norm` slightly more confusing (you may expect no normalization at all >> on the `ifft`)? Not sure its a big argument, though... >> > > To me the least ambiguous naming are: > > 1. Related to the transforms themselves, as these have the most clearly > understood usage and naming for most people in most FFT/IFFT contexts that > I've seen; and > 2. Can be passed to both functions the same way to achieve round-trip > equality (i.e., np.allclose(ifft(fft(x,norm=norm),norm=norm),x)). > > People who want to do something weird like no normalization in either > direction are not the ones that I think should be prioritized here, as they > are the exception and not the rule (far rarer I'd expect). So I'd prefer > that the naming reflect the generally desirable round-trip equality. This > makes it easiest for people working with FFT and IFFT pairs (or even using > FFT and thinking about Parseval's relation of the resulting > frequency-domain data) to understand what's going on. For example this is a > pretty clear docstring to me (as is NumPy's current one > ): > > norm : {'forward', 'inverse', 'ortho', None} > The normalization to apply during the FFT or IFFT, each of which will ensure > round-trip numerical equivalence when the same value is passed to both forward > and inverse transform functions: > > - "inverse" (default; same as None) will apply full normalization only during > the IFFT (1/N); this follows the standard definition of the discrete Fourier > transform and its inverse. > - "forward" will apply full normalization only during the FFT (1/N). > - "ortho" will apply half the normalization during the FFT and the IFFT > (1/sqrt(N)), thereby ortho-normalizing the bases. > > One could argue that "ortho" could equivalently be "split" or "half" or > something, but it already seems clear enough about what it will do (and > even why it's potentially useful). > > My 2c, > Eric > _______________________________________________ > SciPy-Dev mailing list > SciPy-Dev at python.org > https://mail.python.org/mailman/listinfo/scipy-dev > -------------- next part -------------- An HTML attachment was scrubbed... URL: From h.klemm at gmx.de Mon Jun 29 03:30:55 2020 From: h.klemm at gmx.de (Hanno Klemm) Date: Mon, 29 Jun 2020 09:30:55 +0200 Subject: [SciPy-Dev] New normalization option/kwarg for fft normalization In-Reply-To: References: Message-ID: As someone who uses FFTs a lot for filtering or applying operators in the spectral domain, I find the consistency of the FFT/IFFT pairs extremely important. I also have to say that I am not a big fan of the names for the normalisations that are currently discussed but I also don?t have a better idea. Therefore, mentioning in the docstring how these normalisations affect the round trip is a good idea from my point of view. Hanno > On 29. Jun 2020, at 04:51, Ilhan Polat wrote: > > ? > I am a bit suspicious of the need for round-trip-equality for the majority of the users. For one, I hardly ever used them as a pair for the same object. So this idempotent requirement seems a bit of an occupational hazard to me. All users that will perform a one-way transform and be done with it, are now going to be thinking about a direction that they have nothing to do with. I don't see why IFFT comes into play in the docstring of FFT. These are exclusively separate transformations. > > > > > >> On Mon, Jun 29, 2020 at 1:34 AM Eric Larson wrote: >> >>> On small argument against the "by_n" approach is that both `"ortho"` >>> and `None` use the directional notion already implicitly. Since below >>> you would need the `ifft(x, norm="by_1")` to achieve the desired effect >>> here as None will normalize the `ifft` by default. >> >> One option would be to change the default None to an alias "inverse" to make it clearer. This could be done without a deprecation cycle. >> >>> So using `by_n` or similar, works well, but may make a call without >>> `norm` slightly more confusing (you may expect no normalization at all >>> on the `ifft`)? Not sure its a big argument, though... >> >> To me the least ambiguous naming are: >> >> 1. Related to the transforms themselves, as these have the most clearly understood usage and naming for most people in most FFT/IFFT contexts that I've seen; and >> 2. Can be passed to both functions the same way to achieve round-trip equality (i.e., np.allclose(ifft(fft(x,norm=norm),norm=norm),x)). >> >> People who want to do something weird like no normalization in either direction are not the ones that I think should be prioritized here, as they are the exception and not the rule (far rarer I'd expect). So I'd prefer that the naming reflect the generally desirable round-trip equality. This makes it easiest for people working with FFT and IFFT pairs (or even using FFT and thinking about Parseval's relation of the resulting frequency-domain data) to understand what's going on. For example this is a pretty clear docstring to me (as is NumPy's current one): >> norm : {'forward', 'inverse', 'ortho', None} >> The normalization to apply during the FFT or IFFT, each of which will ensure >> round-trip numerical equivalence when the same value is passed to both forward >> and inverse transform functions: >> >> - "inverse" (default; same as None) will apply full normalization only during >> the IFFT (1/N); this follows the standard definition of the discrete Fourier >> transform and its inverse. >> - "forward" will apply full normalization only during the FFT (1/N). >> - "ortho" will apply half the normalization during the FFT and the IFFT >> (1/sqrt(N)), thereby ortho-normalizing the bases. >> One could argue that "ortho" could equivalently be "split" or "half" or something, but it already seems clear enough about what it will do (and even why it's potentially useful). >> >> My 2c, >> Eric >> _______________________________________________ >> SciPy-Dev mailing list >> SciPy-Dev at python.org >> https://mail.python.org/mailman/listinfo/scipy-dev > _______________________________________________ > SciPy-Dev mailing list > SciPy-Dev at python.org > https://mail.python.org/mailman/listinfo/scipy-dev -------------- next part -------------- An HTML attachment was scrubbed... URL: From grlee77 at gmail.com Mon Jun 29 15:44:57 2020 From: grlee77 at gmail.com (Gregory Lee) Date: Mon, 29 Jun 2020 15:44:57 -0400 Subject: [SciPy-Dev] New normalization option/kwarg for fft normalization In-Reply-To: References: <55c7166d9658e9e5da1ba82b0341e7b81e642260.camel@sipsolutions.net> <6ee9029386710e6c6d980ad7c5555e428e4ec7d5.camel@sipsolutions.net> Message-ID: Ilhan, So are you suggesting that rather than using the same "backward" (or None), "ortho", or "forward" argument in fft and ifft you would specify something similar to the following?: # normalize by 1/N on the inverse transform y = fft(x, norm="1") # or norm=None to preserve backwards-compatibility x_roundtrip = ifft(y, norm="N") # or norm=None to preserving backwards-compatibility # normalize by 1/N on the forward transform y = fft(x, norm="N") x_roundtrip = ifft(y, norm="1") # normalize by 1/sqrt(N) on each y = fft(x, norm="ortho") x_roundtrip = ifft(y, norm="ortho") Neal Becker suggested something like the above in the NumPy thread, but with norm="full" to indicate normalization by 1/N I like the "backward"/"ortho"/"forward" approach where the same kwarg is used in both directions a little better, but agree that either approach has its merits. It seems that we can maintain backwards compatibility either way. On Sun, Jun 28, 2020 at 10:50 PM Ilhan Polat wrote: > I am a bit suspicious of the need for round-trip-equality for the majority > of the users. For one, I hardly ever used them as a pair for the same > object. So this idempotent requirement seems a bit of an occupational > hazard to me. All users that will perform a one-way transform and be done > with it, are now going to be thinking about a direction that they have > nothing to do with. I don't see why IFFT comes into play in the docstring > of FFT. These are exclusively separate transformations. > > > > > > On Mon, Jun 29, 2020 at 1:34 AM Eric Larson > wrote: > >> >> >>> On small argument against the "by_n" approach is that both `"ortho"` >>> and `None` use the directional notion already implicitly. Since below >>> you would need the `ifft(x, norm="by_1")` to achieve the desired effect >>> here as None will normalize the `ifft` by default. >>> >> >> One option would be to change the default None to an alias "inverse" to >> make it clearer. This could be done without a deprecation cycle. >> >> So using `by_n` or similar, works well, but may make a call without >>> `norm` slightly more confusing (you may expect no normalization at all >>> on the `ifft`)? Not sure its a big argument, though... >>> >> >> To me the least ambiguous naming are: >> >> 1. Related to the transforms themselves, as these have the most clearly >> understood usage and naming for most people in most FFT/IFFT contexts that >> I've seen; and >> 2. Can be passed to both functions the same way to achieve round-trip >> equality (i.e., np.allclose(ifft(fft(x,norm=norm),norm=norm),x)). >> >> People who want to do something weird like no normalization in either >> direction are not the ones that I think should be prioritized here, as they >> are the exception and not the rule (far rarer I'd expect). So I'd prefer >> that the naming reflect the generally desirable round-trip equality. This >> makes it easiest for people working with FFT and IFFT pairs (or even using >> FFT and thinking about Parseval's relation of the resulting >> frequency-domain data) to understand what's going on. For example this is a >> pretty clear docstring to me (as is NumPy's current one >> >> ): >> >> norm : {'forward', 'inverse', 'ortho', None} >> The normalization to apply during the FFT or IFFT, each of which will ensure >> round-trip numerical equivalence when the same value is passed to both forward >> and inverse transform functions: >> >> - "inverse" (default; same as None) will apply full normalization only during >> the IFFT (1/N); this follows the standard definition of the discrete Fourier >> transform and its inverse. >> - "forward" will apply full normalization only during the FFT (1/N). >> - "ortho" will apply half the normalization during the FFT and the IFFT >> (1/sqrt(N)), thereby ortho-normalizing the bases. >> >> One could argue that "ortho" could equivalently be "split" or "half" or >> something, but it already seems clear enough about what it will do (and >> even why it's potentially useful). >> >> My 2c, >> Eric >> _______________________________________________ >> SciPy-Dev mailing list >> SciPy-Dev at python.org >> https://mail.python.org/mailman/listinfo/scipy-dev >> > _______________________________________________ > SciPy-Dev mailing list > SciPy-Dev at python.org > https://mail.python.org/mailman/listinfo/scipy-dev > -------------- next part -------------- An HTML attachment was scrubbed... URL: From ilhanpolat at gmail.com Mon Jun 29 17:01:59 2020 From: ilhanpolat at gmail.com (Ilhan Polat) Date: Mon, 29 Jun 2020 23:01:59 +0200 Subject: [SciPy-Dev] New normalization option/kwarg for fft normalization In-Reply-To: References: <55c7166d9658e9e5da1ba82b0341e7b81e642260.camel@sipsolutions.net> <6ee9029386710e6c6d980ad7c5555e428e4ec7d5.camel@sipsolutions.net> Message-ID: To be honest I changed my mind at least 3 times while typing this. On one hand this direction stuff doesn't make any sense to me. On the other hand it makes sense to many people so maybe I should shut up about it. I view this as a single command namely FFT. I transform my sequence and I might enjoy some normalization such that certain properties match with the original signal I've started with or I don't care about normalization because I work with the relative quantities. Fortunately I have a keyword "norm" to control this. It's value is called "forward" and another value is "inverse". Probably I can't justify this part. On Mon, Jun 29, 2020, 21:46 Gregory Lee wrote: > Ilhan, > > So are you suggesting that rather than using the same "backward" (or > None), "ortho", or "forward" argument in fft and ifft you would specify > something similar to the following?: > > # normalize by 1/N on the inverse transform > y = fft(x, norm="1") # or norm=None to preserve backwards-compatibility > x_roundtrip = ifft(y, norm="N") # or norm=None to preserving > backwards-compatibility > > # normalize by 1/N on the forward transform > y = fft(x, norm="N") > x_roundtrip = ifft(y, norm="1") > > # normalize by 1/sqrt(N) on each > y = fft(x, norm="ortho") > x_roundtrip = ifft(y, norm="ortho") > > Neal Becker suggested something like the above in the NumPy thread, but > with norm="full" to indicate normalization by 1/N > > I like the "backward"/"ortho"/"forward" approach where the same kwarg is > used in both directions a little better, but agree that either approach has > its merits. It seems that we can maintain backwards compatibility either > way. > > > On Sun, Jun 28, 2020 at 10:50 PM Ilhan Polat wrote: > >> I am a bit suspicious of the need for round-trip-equality for the >> majority of the users. For one, I hardly ever used them as a pair for the >> same object. So this idempotent requirement seems a bit of an occupational >> hazard to me. All users that will perform a one-way transform and be done >> with it, are now going to be thinking about a direction that they have >> nothing to do with. I don't see why IFFT comes into play in the docstring >> of FFT. These are exclusively separate transformations. >> >> >> >> >> >> On Mon, Jun 29, 2020 at 1:34 AM Eric Larson >> wrote: >> >>> >>> >>>> On small argument against the "by_n" approach is that both `"ortho"` >>>> and `None` use the directional notion already implicitly. Since below >>>> you would need the `ifft(x, norm="by_1")` to achieve the desired effect >>>> here as None will normalize the `ifft` by default. >>>> >>> >>> One option would be to change the default None to an alias "inverse" to >>> make it clearer. This could be done without a deprecation cycle. >>> >>> So using `by_n` or similar, works well, but may make a call without >>>> `norm` slightly more confusing (you may expect no normalization at all >>>> on the `ifft`)? Not sure its a big argument, though... >>>> >>> >>> To me the least ambiguous naming are: >>> >>> 1. Related to the transforms themselves, as these have the most clearly >>> understood usage and naming for most people in most FFT/IFFT contexts that >>> I've seen; and >>> 2. Can be passed to both functions the same way to achieve round-trip >>> equality (i.e., np.allclose(ifft(fft(x,norm=norm),norm=norm),x)). >>> >>> People who want to do something weird like no normalization in either >>> direction are not the ones that I think should be prioritized here, as they >>> are the exception and not the rule (far rarer I'd expect). So I'd prefer >>> that the naming reflect the generally desirable round-trip equality. This >>> makes it easiest for people working with FFT and IFFT pairs (or even using >>> FFT and thinking about Parseval's relation of the resulting >>> frequency-domain data) to understand what's going on. For example this is a >>> pretty clear docstring to me (as is NumPy's current one >>> >>> ): >>> >>> norm : {'forward', 'inverse', 'ortho', None} >>> The normalization to apply during the FFT or IFFT, each of which will ensure >>> round-trip numerical equivalence when the same value is passed to both forward >>> and inverse transform functions: >>> >>> - "inverse" (default; same as None) will apply full normalization only during >>> the IFFT (1/N); this follows the standard definition of the discrete Fourier >>> transform and its inverse. >>> - "forward" will apply full normalization only during the FFT (1/N). >>> - "ortho" will apply half the normalization during the FFT and the IFFT >>> (1/sqrt(N)), thereby ortho-normalizing the bases. >>> >>> One could argue that "ortho" could equivalently be "split" or "half" or >>> something, but it already seems clear enough about what it will do (and >>> even why it's potentially useful). >>> >>> My 2c, >>> Eric >>> _______________________________________________ >>> SciPy-Dev mailing list >>> SciPy-Dev at python.org >>> https://mail.python.org/mailman/listinfo/scipy-dev >>> >> _______________________________________________ >> SciPy-Dev mailing list >> SciPy-Dev at python.org >> https://mail.python.org/mailman/listinfo/scipy-dev >> > _______________________________________________ > SciPy-Dev mailing list > SciPy-Dev at python.org > https://mail.python.org/mailman/listinfo/scipy-dev > -------------- next part -------------- An HTML attachment was scrubbed... URL: